서버 설정 · 7 min read · Oct 30, 2025

완벽한 서버 - 우분투 18.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD 및 ISPConfig 3.1) - 페이지 3

15. Roundcube 웹메일 설치

RoundCube 웹메일을 설치하려면 다음 명령어를 실행하십시오:

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

설치 프로그램은 다음 질문을 할 것입니다:

Configure database for roundcube with dbconfig-common? <-- 예  
MySQL application password for roundcube: <-- Enter 키를 누르십시오  

그런 다음 RoundCube config.inc.php 구성 파일을 편집하십시오:

nano /etc/roundcube/config.inc.php

기본 호스트를 localhost로 변경하십시오:

$config['default_host'] = 'localhost';

이렇게 하면 Roundcube가 로그인 양식에 서버 이름 입력 필드를 표시하지 않게 됩니다.

이제 SquirrelMail 구성을 ISPConfig에서 Roundcube에 사용할 수 있도록 심볼릭 링크를 만듭니다:

ln -s /usr/share/roundcube /usr/share/squirrelmail

ISPConfig 3를 설치한 후, 다음과 같이 Roundcube에 접근할 수 있습니다:

nginx의 포트 8081에 있는 ISPConfig 앱 vhost는 Roundcube 구성을 포함하므로, http://server1.example.com:8081/webmail을 사용하여 Roundcube에 접근할 수 있습니다.

웹사이트에서 사용할 수 있는 /webmail 별칭을 사용하려면, Apache보다 nginx에서 좀 더 복잡합니다. nginx는 전역 별칭(즉, 모든 vhost에 대해 정의할 수 있는 별칭)이 없기 때문입니다. 따라서 Roundcube에 접근하고자 하는 vhost에 대해 이러한 별칭을 정의해야 합니다.

이를 위해 ISPConfig의 웹사이트 옵션 탭의 nginx 지시어 필드에 다음을 붙여넣으십시오:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

vhost에 대해 http s를 사용하는 경우, SquirrelMail 구성에 다음과 같은 줄을 추가해야 합니다:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_param HTTPS on; # <-- 이 줄을 추가하십시오
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

vhost에 대해 http와 https를 모두 사용하는 경우, /etc/nginx/nginx.conf의 http {} 섹션에 다음 섹션을 추가해야 합니다(모든 include 줄 이전에), 이는 방문자가 http 또는 https를 사용하는지 감지하고 $fastcgi_https 변수를 설정합니다(이 변수는 Roundcube 구성에서 사용할 것입니다):

nano /etc/nginx/nginx.conf
[...]
http {
[...]
        ## HTTPS 사용 감지
        map $scheme $fastcgi_https {
          default off;
          https on;

        }
[...]
}
[...]

그 후 nginx를 다시 로드하는 것을 잊지 마십시오:

service nginx reload

그런 다음 nginx 지시어 필드로 다시 가서 fastcgi_param HTTPS on; 대신 fastcgi_param HTTPS $fastcgi_https; 줄을 추가하여 http 및 https 요청 모두에 대해 Roundcube를 사용할 수 있도록 합니다:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_param HTTPS $fastcgi_https; # <-- 이 줄을 추가하십시오
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

16. ISPConfig 3.1 설치

ISPConfig 설치를 시작하기 전에 Apache가 중지되었는지 확인하십시오(설치된 경우 - 일부 설치된 패키지가 Apache를 의존성으로 설치했을 수 있습니다). 시스템에 Apache2가 이미 설치되어 있다면 지금 중지하십시오…

service apache2 stop

… 그리고 Apache의 시스템 시작 링크를 제거하십시오:

update-rc.d -f apache2 remove

nginx가 실행 중인지 확인하십시오:

service nginx restart

(만약 Apache와 nginx가 모두 설치되어 있다면, 설치 프로그램은 어떤 것을 사용할 것인지 물어봅니다: Apache와 nginx가 감지되었습니다. ISPConfig에 사용할 서버를 선택하십시오: (apache,nginx) [apache]:

nginx를 입력하십시오. Apache 또는 Nginx만 설치된 경우, 설치 프로그램이 자동으로 감지하며 질문이 없습니다.)

GIT 안정 브랜치에서 ISPConfig 3.1을 설치하려면 다음을 수행하십시오:

cd /tmp   
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz  
tar xfz ispconfig.tar.gz  
cd ispconfig3*/install/

다음 단계는

php -q install.php

를 실행하는 것입니다. 이것은 ISPConfig 3.1 설치 프로그램을 시작합니다. 설치 프로그램은 Postfix, Dovecot 등과 같은 모든 서비스를 자동으로 구성합니다.

root@server1:/tmp/ispconfig3-stable-3.1-da1e393d7bed829d180dd9006019201e3370e77a/install# php install.php

--------------------------------------------------------------------------------  
_____ ___________ _____ __ _ ____  
|_ _/ ___| ___ \ / __ \ / _(_) /__ \  
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /  
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |  
_| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \  
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/  
__/ |  
|___/  
--------------------------------------------------------------------------------

>> 초기 구성
운영 체제: Ubuntu 18.04 LTS (Bionic Beaver)
다음은 기본 구성을 위한 몇 가지 질문이 있을 것입니다.  
기본값은 [괄호] 안에 있으며 로 수락할 수 있습니다.  
"quit"(따옴표 없이)를 입력하여 설치 프로그램을 중지하십시오.

언어 선택 (en,de) [en]: <-- ENTER
설치 모드 (standard,expert) [standard]: <-- ENTER
서버의 전체 자격 호스트 이름 (FQDN), 예: server1.domain.tld [server1.example.com]: <-- ENTER
MySQL 서버 호스트 이름 [localhost]: <-- ENTER
MySQL 서버 포트 [3306]: <-- ENTER
MySQL 루트 사용자 이름 [root]: <-- ENTER
MySQL 루트 비밀번호 []: <-- 여기에서 MySQL 루트 비밀번호를 입력하십시오
생성할 MySQL 데이터베이스 [dbispconfig]: <-- ENTER
MySQL 문자 집합 [utf8]: <-- ENTER
Postgrey 구성 중  
Postfix 구성 중  
4096 비트 RSA 개인 키 생성 중  
.................................................................................................................................................................................................................................................................................................................................................................................................................++  
...++  
'smtpd.key'에 새 개인 키 작성 중  
-----  
인증서 요청에 포함될 정보를 입력하라는 메시지가 표시됩니다.  
입력할 내용은 '구별 이름' 또는 DN이라고 합니다.  
몇 가지 필드가 있지만 일부는 비워둘 수 있습니다.  
일부 필드에는 기본값이 있습니다.  
'.'를 입력하면 필드가 비워집니다.  
-----  
국가 이름 (2자리 코드) [AU]: <-- 2자리 국가 코드를 입력하십시오, 예: DE  
주 또는 지방 이름 (전체 이름) [Some-State]: <-- 귀하의 주를 입력하십시오  
지역 이름 (예: 도시) []: <-- 귀하의 도시를 입력하십시오, 제 경우에는 Lueneburg  
조직 이름 (예: 회사) [Internet Widgits Pty Ltd]: <-- 귀하의 회사 이름을 입력하십시오, 제 경우에는 ISPConfig UG  
조직 단위 이름 (예: 섹션) []: <-- 귀하의 조직 단위 이름을 입력하십시오, 저는 여기서 IT를 사용합니다  
일반 이름 (예: 서버 FQDN 또는 귀하의 이름) []: <-- 서버 호스트 이름을 입력하십시오, 제 경우에는 server1.example.com  
이메일 주소 []: <-- 이메일 주소를 입력하십시오, 예: [email protected]  
Mailman 구성 중  
Dovecot 구성 중  
Spamassassin 구성 중  
Amavisd 구성 중  
Getmail 구성 중  
Jailkit 구성 중  
Pureftpd 구성 중  
BIND 구성 중  
nginx 구성 중  
[INFO] OpenVZ 서비스가 감지되지 않았습니다  
Ubuntu 방화벽 구성 중  
Metronome XMPP 서버 구성 중  
'localhost.key'에 새 개인 키 작성 중  
-----  
국가 이름 (2자리 코드) [AU]: <-- 2자리 국가 코드를 입력하십시오, 예: DE  
지역 이름 (예: 도시) [City Name]: <-- 귀하의 도시를 입력하십시오, 제 경우에는 Lueneburg  
조직 이름 (예: 회사) [Internet Widgits Pty Ltd]: <-- 귀하의 회사 이름을 입력하십시오, 제 경우에는 ISPConfig UG  
조직 단위 이름 (예: 섹션) [Infrastructure]: <-- 귀하의 조직 단위 이름을 입력하십시오, 저는 여기서 IT를 사용합니다  
일반 이름 (예: 서버 FQDN 또는 귀하의 이름) [server1.example.com]: <-- 서버 호스트 이름을 입력하십시오, 제 경우에는 server1.example.com  
이메일 주소 [[email protected]]: <-- 이메일 주소를 입력하십시오, 예: [email protected]  
중요:  
로컬호스트 키, Csr 및 자가 서명된 인증서가 /etc/metronome/certs에 저장되었습니다  
모든 클라이언트와 작업하려면 서버에 신뢰할 수 있는 인증서가 필요하므로 Csr을 사용하여 CA로부터 신뢰할 수 있는 인증서를 받거나 이미 서명된 파일로 키와 인증서를 교체하십시오.  
Pidgin과 같은 클라이언트는 신뢰할 수 없는 자가 서명된 인증서를 사용할 수 없습니다.
Fail2ban 구성 중  
Apps vhost 구성 중  
ISPConfig 설치 중  
ISPConfig 포트 [8080]: <-- ENTER
관리자 비밀번호 [admin]: <-- 원하는 관리자 비밀번호를 입력하십시오
ISPConfig 웹 인터페이스에 대한 보안(SSL) 연결을 원하십니까 (y,n) [y]: <-- ENTER
4096 비트 길이 모듈러 RSA 개인 키 생성 중  
....................................................++  
........................++  
e는 65537 (0x10001)입니다  
인증서 요청에 포함될 정보를 입력하라는 메시지가 표시됩니다.  
입력할 내용은 '구별 이름' 또는 DN이라고 합니다.  
몇 가지 필드가 있지만 일부는 비워둘 수 있습니다.  
일부 필드에는 기본값이 있습니다.  
'.'를 입력하면 필드가 비워집니다.  
-----  
국가 이름 (2자리 코드) [AU]: <-- 2자리 국가 코드를 입력하십시오, 예: DE  
주 또는 지방 이름 (전체 이름) [Some-State]: <-- 귀하의 주를 입력하십시오  
지역 이름 (예: 도시) []: <-- 귀하의 도시를 입력하십시오, 제 경우에는 Lueneburg  
조직 이름 (예: 회사) [Internet Widgits Pty Ltd]: <-- 귀하의 회사 이름을 입력하십시오, 제 경우에는 ISPConfig UG  
조직 단위 이름 (예: 섹션) []: <-- 귀하의 조직 단위 이름을 입력하십시오, 저는 여기서 IT를 사용합니다  
일반 이름 (예: 서버 FQDN 또는 귀하의 이름) []: <-- 서버 호스트 이름을 입력하십시오, 제 경우에는 server1.example.com  
이메일 주소 []: <-- 이메일 주소를 입력하십시오, 예: [email protected]
다음 '추가' 속성을 입력하십시오  
인증서 요청과 함께 전송됩니다  
도전 비밀번호 []: <-- ENTER  
선택적 회사 이름 []: <-- ENTER  
RSA 키 작성 중

DBServer 구성 중  
ISPConfig 크론탭 설치 중  
ISPConfig 크론탭 설치 중  
root에 대한 크론탭 없음  
getmail에 대한 크론탭 없음  
IP 주소 감지 중  
서비스 재시작 중 ...  
설치 완료.

설치 프로그램은 모든 기본 서비스를 자동으로 구성하므로 수동 구성이 필요하지 않습니다.

그 후 http(s)://server1.example.com:8080/ 또는 http(s)://192.168.1.100:8080/에서 ISPConfig 3에 접근할 수 있습니다( http 또는 https는 설치 중 선택한 것에 따라 다릅니다). 사용자 이름 admin과 비밀번호 admin으로 로그인하십시오(첫 로그인 후 기본 비밀번호를 변경해야 합니다):

ISPConfig 로그인

ISPConfig 대시보드

시스템이 이제 사용 준비가 완료되었습니다.

16.1 ISPConfig 3.1 매뉴얼

ISPConfig 3 사용 방법을 배우기 위해 ISPConfig 3.1 매뉴얼을 다운로드하는 것을 강력히 권장합니다.

300페이지 이상에 걸쳐 ISPConfig의 개념(관리자, 리셀러, 클라이언트)을 다루고, ISPConfig 3 설치 및 업데이트 방법을 설명하며, ISPConfig의 모든 양식 및 양식 필드에 대한 참조와 유효한 입력 예제를 포함하고, ISPConfig 3에서 가장 일반적인 작업에 대한 튜토리얼을 제공합니다. 또한 서버를 더 안전하게 만드는 방법을 설명하고 마지막에 문제 해결 섹션이 포함되어 있습니다.

17 이 튜토리얼의 가상 머신 이미지 다운로드

이 튜토리얼은 VMWare 및 Virtualbox와 호환되는 ovf/ova 형식의 사용 준비가 완료된 가상 머신 이미지로 제공됩니다. 가상 머신 이미지는 다음 로그인 세부정보를 사용합니다:

SSH / 셸 로그인

사용자 이름: administrator
비밀번호: howtoforge

이 사용자는 sudo 권한이 있습니다.

ISPConfig 로그인

사용자 이름: admin
비밀번호: howtoforge

MySQL 로그인

사용자 이름: root
비밀번호: howtoforge

VM의 IP는 192.168.1.100이며, /etc/netplan/01-netcfg.yaml 파일에서 변경할 수 있습니다. 위의 모든 비밀번호를 변경하여 가상 머신을 보호하십시오.

18. 링크

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.