서버 설정 · 9 min read · Jan 07, 2026

완벽한 서버 - CentOS 7 x86_64 (nginx, Dovecot, ISPConfig 3) - 페이지 3

23 RoundcubeMail 설치

Roundcube 웹메일 클라이언트를 설치하려면 다음을 실행하십시오…

yum -y install roundcubemail

ISPConfig에는 squirremail에 대한 기본 웹메일 별칭이 앱 vhost 내에 포함되어 있습니다. 우리는 더 현대적인 roundcube를 위해 그 별칭을 사용할 것이므로 /usr/share에 squirrelmail이라는 이름의 심볼릭 링크를 생성합니다.

ln -s /usr/share/roundcubemail /usr/share/squirrelmail

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

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

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

이를 위해 ISPConfig의 웹사이트의 옵션 탭에 있는 nginx 지시어 필드에 다음을 붙여넣습니다:

이를 위해 ISPConfig의 웹사이트의 옵션 탭에 있는 nginx 지시어 필드에 다음을 붙여넣습니다:

        location /roundcubemail {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcubemail/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       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 ~* ^/roundcubemail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcubemail last;
        }

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

        location /roundcubemail {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcubemail/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       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 ~* ^/roundcubemail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcubemail last;
        }

vhost에 대해 http와 https를 모두 사용하는 경우, $https 변수를 사용할 수 있습니다 - 다시 nginx 지시어 필드로 가서 fastcgi_param HTTPS on; 대신 fastcgi_param HTTPS $https; 줄을 추가하여 RoundcubeMail을 http 및 https 요청 모두에 사용할 수 있습니다:

        location /roundcubemail {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcubemail/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       fastcgi_param HTTPS $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 ~* ^/roundcubemail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /squirrelmail last;
        }

이제 roundcube 메일을 위한 데이터베이스가 필요합니다. 다음과 같이 초기화합니다:

mysql -u root -p

mariadb 프롬프트에서 다음을 사용하십시오:

CREATE DATABASE roundcubedb;
CREATE USER roundcubeuser@localhost IDENTIFIED BY ‘roundcubepassword’;
GRANT ALL PRIVILEGES on roundcubedb.* to roundcubeuser@localhost ;
FLUSH PRIVILEGES;
exit

나는 테스트를 위해 roundcube 데이터베이스의 세부정보를 사용하고 있으니, 보안상의 이유로 값을 변경하십시오. ISPConfig를 설치한 후에 roundcube 설치를 마무리하겠습니다.

24 ISPConfig 3 설치

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

systemctl stop httpd.service

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

systemctl disable httpd.service

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

systemctl restart nginx.service

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

nginx를 입력하십시오. Apache 또는 nginx만 설치되어 있다면, 설치 프로그램이 자동으로 이를 감지하고 질문을 하지 않습니다.)

현재 ISPConfig 3 버전을 다운로드하고 설치하십시오. ISPConfig 설치 프로그램이 Postfix, Dovecot 등과 같은 모든 서비스를 구성해 줄 것입니다. ISPConfig 2에 필요한 수동 설정은 더 이상 필요하지 않습니다.

이제 설치 프로그램이 ISPConfig 제어판을 위한 SSL vhost를 생성하도록 할 수 있는 가능성도 있습니다. 따라서 ISPConfig에 http:// 대신 https://로 접근할 수 있습니다. 이를 달성하기 위해, 다음 질문이 보일 때 ENTER를 누르십시오: ISPConfig 웹 인터페이스에 대한 안전한 (SSL) 연결을 원하십니까 (y,n) [y]:.

최신 릴리스된 버전에서 ISPConfig 3를 설치하려면 다음을 수행하십시오:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

다음 단계는

php -q install.php

를 실행하는 것입니다.

이것은 ISPConfig 3 설치 프로그램을 시작할 것입니다:

[root@server1 install]# php -q install.php

——————————————————————————–
_ _ _ _
| / | \ / \ / () / \
| | | \ --.| |_/ /| | \/ ___ _ __ | |_ _ __ _ _/ / | | |–. \ / | | / \| ‘ \| | |/ ` | | | |
| |_| |\
/ / | |_/\ () | | | | | | | (| | __\ \
_/__/_| _/\/|| ||| ||_, | __/ / |
|__
/
——————————————————————————–

>> 초기 구성
운영 체제: Redhat 또는 호환, 알 수 없는 버전.
다음은 기본 구성을 위한 몇 가지 질문이 있을 것이므로 주의하십시오.
기본값은 [괄호] 안에 있으며 로 수락할 수 있습니다.
“quit”(따옴표 없이)를 입력하여 설치 프로그램을 중지하십시오.

언어 선택 (en,de) [en]: <– ENTER
설치 모드 (standard,expert) [standard]: <– ENTER
서버의 완전한 호스트 이름 (FQDN), 예: server1.domain.tld [server1.example.com]: <– ENTER
MySQL 서버 호스트 이름 [localhost]: <– ENTER
MySQL 루트 사용자 이름 [root]: <– ENTER
MySQL 루트 비밀번호 []: <– yourrootsqlpassword
MySQL 생성할 데이터베이스 [dbispconfig]: <– ENTER
MySQL 문자 집합 [utf8]: <– ENTER
Apache와 nginx가 감지되었습니다. ISPConfig에 사용할 서버를 선택하십시오: (apache,nginx) [apache]: <– nginx
2048 비트 RSA 개인 키 생성 중
…………………………………………………………….+++
………………………………………..+++
‘smtpd.key’에 새 개인 키를 작성 중입니다.
—–
인증서 요청에 통합될 정보를 입력하라는 요청을 받게 됩니다.
입력하려는 것은 구별된 이름(Distinguished Name) 또는 DN이라고 불리는 것입니다.
몇 가지 필드가 있지만 일부는 비워둘 수 있습니다.
일부 필드에는 기본값이 있습니다.
‘.’를 입력하면 필드가 비워집니다.
—–
국가 이름 (2자리 코드) [XX]: <– ENTER
주 또는 지방 이름 (전체 이름) []: <– ENTER
지역 이름 (예: 도시) [Default City]: <– ENTER
조직 이름 (예: 회사) [Default Company Ltd]: <– ENTER
조직 단위 이름 (예: 섹션) []: <– ENTER
공통 이름 (예: 이름 또는 서버의 호스트 이름) []: <– ENTER
이메일 주소 []: <– ENTER
Jailkit 구성 중
Dovecot 구성 중
Spamassassin 구성 중
Amavisd 구성 중
Getmail 구성 중
Pureftpd 구성 중
BIND 구성 중
nginx 구성 중
Vlogger 구성 중
앱 vhost 구성 중
Bastille 방화벽 구성 중
Fail2ban 구성 중
ISPConfig 설치 중
ISPConfig 포트 [8080]: <– ENTER
ISPConfig 웹 인터페이스에 대한 안전한 (SSL) 연결을 원하십니까 (y,n) [y]: <– ENTER
4096 비트 길이의 RSA 개인 키 생성 중
…………………………………………………..++
…………………………………………………………………++
e는 65537 (0x10001)
인증서 요청에 통합될 정보를 입력하라는 요청을 받게 됩니다.
입력하려는 것은 구별된 이름(Distinguished Name) 또는 DN이라고 불리는 것입니다.
몇 가지 필드가 있지만 일부는 비워둘 수 있습니다.
일부 필드에는 기본값이 있습니다.
‘.’를 입력하면 필드가 비워집니다.
—–
국가 이름 (2자리 코드) [XX]: <– ENTER
주 또는 지방 이름 (전체 이름) []: <– ENTER
지역 이름 (예: 도시) [Default City]: <– ENTER
조직 이름 (예: 회사) [Default Company Ltd]: <– ENTER
조직 단위 이름 (예: 섹션) []: <– ENTER
공통 이름 (예: 이름 또는 서버의 호스트 이름) []: <– ENTER
이메일 주소 []: <– ENTER
다음 ‘추가‘ 속성을 입력하십시오
인증서 요청과 함께 전송됩니다.
도전 비밀번호 []: <– ENTER
선택적 회사 이름 []: <– ENTER
RSA 키 작성 중
DBServer 구성 중
ISPConfig crontab 설치 중
root에 대한 crontab 없음
getmail에 대한 crontab 없음
서비스 재시작 중 …
mysqld 중지: [ OK ]
mysqld 시작: [ OK ]
postfix 종료: [ OK ]
postfix 시작: [ OK ]
saslauthd 중지: [FAILED]
saslauthd 시작: [ OK ]
amavisd 종료: Daemon [1554]가 SIGTERM에 의해 종료되었습니다.
[ OK ]
amavisd 중지됨
amavisd 시작: [ OK ]
clamd.amavisd 중지: [ OK ]
clamd.amavisd 시작: [ OK ]
Dovecot Imap 중지: [ OK ]
Dovecot Imap 시작: [ OK ]
php-fpm 재로드 중: [ OK ]
nginx 재로드 중: [ OK ]
pure-ftpd 중지: [ OK ]
pure-ftpd 시작: [ OK ]
설치 완료.
[root@server1 install]# ISPConfig 설치 중 발생할 수 있는 Mailman 오류를 수정하려면 /usr/lib/mailman/Mailman/mm_cfg.py를 열고… vi /usr/lib/mailman/Mailman/mm_cfg.py … DEFAULT_SERVER_LANGUAGE = ‘en’으로 설정하십시오: [...] #------------------------------------------------------------- # 이 서버의 기본 언어. DEFAULT_SERVER_LANGUAGE = 'en' [...] Mailman을 재시작하십시오: systemctl restart mailman.service 이제 RoundcubeMail 설치를 마무리하겠습니다. 브라우저에서 다음 URL을 엽니다: http://192.168.0.100:8081/roundcubemail/installer RoundcubeMail 웹 설치 프로그램이 나타나고, 페이지를 아래로 스크롤하여 다음을 클릭하십시오: 그런 다음 23장에서 생성한 roundcubedb 데이터베이스의 세부정보를 입력하십시오: SMTP 서버를 localhost로 설정하고 선호하는 언어를 설정하십시오. 그리고 “구성 생성”을 클릭하여 다음 페이지로 이동하십시오. 쉘에서 /etc/roundcubemail/config.inc.php 파일을 엽니다: nano /etc/roundcubemail/config.inc.php 그리고 웹 설치 프로그램에 표시된 구성을 해당 파일에 붙여넣고 파일을 저장하십시오. 그런 다음 웹 설치 프로그램으로 돌아가서 계속 버튼을 클릭하십시오. 이 페이지에서 “데이터베이스 초기화“를 클릭하십시오: 데이터베이스 초기화가 성공적으로 완료된 후 페이지는 다음과 같아야 합니다: RoundcubeMail 구성을 무단 수정으로부터 보호하기 위해, 다음 명령을 실행하여 설치 폴더를 제거하겠습니다: rm -rf /usr/share/roundcubemail/installer ### 25 첫 ISPConfig 로그인 그 후 http(s)://server1.example.com:8080/ 또는 http(s)://192.168.0.100:8080/에서 ISPConfig 3에 접근할 수 있습니다 (http 또는 https는 설치 중 선택한 것에 따라 다릅니다). 사용자 이름 admin과 비밀번호 admin으로 로그인하십시오 (첫 로그인 후 기본 비밀번호를 변경해야 합니다): 다음으로 ISPConfig에서 BIND 구성 경로를 조정해야 합니다. 상단 메뉴에서 “시스템”을 클릭한 다음 오른쪽 메뉴에서 “서버 구성”을 클릭하십시오. 그런 다음 왼쪽에 나타나는 목록에서 서버 이름을 클릭하십시오. 양식의 “DNS” 탭으로 가십시오: 그리고 DNS 경로를 다음과 같이 입력하십시오: BIND 존 파일 디렉토리: /var/named
BIND named.conf 경로: /etc/named.conf
BIND named.conf.local 경로: /etc/named.conf.local 시스템이 이제 사용 준비가 되었습니다. nginx vhosts에서 IPv6 주소를 사용하려면, ISPConfig에서 IPv6 vhosts를 생성하기 전에 다음을 수행하십시오: /etc/sysctl.conf를 열고… vi /etc/sysctl.conf … net.ipv6.bindv6only = 1 줄을 추가하십시오: [...] net.ipv6.bindv6only = 1 변경 사항이 적용되도록 하려면… sysctl -p …를 실행하십시오. #### 25.1 ISPConfig 3 매뉴얼 ISPConfig 3 사용 방법을 배우기 위해, ISPConfig 3 매뉴얼을 다운로드하는 것을 강력히 권장합니다. 300페이지가 넘는 이 매뉴얼은 ISPConfig의 개념(관리자, 리셀러, 클라이언트)을 다루고, ISPConfig 3 설치 및 업데이트 방법을 설명하며, ISPConfig의 모든 양식 및 양식 필드에 대한 참조와 유효한 입력 예제를 포함하고, ISPConfig 3에서 가장 일반적인 작업에 대한 튜토리얼을 제공합니다. 또한 서버를 더 안전하게 만드는 방법을 설명하고 마지막에 문제 해결 섹션을 포함하고 있습니다. ### 25 링크 - CentOS: http://www.centos.org/
- ISPConfig: http://www.ispconfig.org/

Share: X/Twitter LinkedIn

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

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