서버 설정 · 5 min read · Dec 31, 2025

완벽한 서버 - Ubuntu 14.04 (Apache2, PHP, MySQL, PureFTPD, BIND, Dovecot, ISPConfig 3) - 페이지 4

12. Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils 설치하기

Postfix를 설치하기 위해 sendmail을 중지하고 제거해야 합니다.

service sendmail stop; update-rc.d -f sendmail remove

이제 Postfix, Dovecot, MySQL, rkhunter 및 binutils를 단일 명령으로 설치할 수 있습니다:

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo

다음 질문을 받게 됩니다:

MySQL “root” 사용자에 대한 새 비밀번호: <– yourrootsqlpassword
MySQL “root” 사용자에 대한 비밀번호 반복: <– yourrootsqlpassword
메일 구성의 일반 유형: <– Internet Site
시스템 메일 이름: <– server1.example.com

다음으로 Postfix에서 TLS/SSL 및 제출 포트를 엽니다:

vi /etc/postfix/master.cf

제출 및 smtps 섹션의 주석을 제거합니다. 다음과 같이 -o smtpd_client_restrictions=permit_sasl_authenticated,reject를 두 섹션 모두에 추가하고 그 이후의 모든 것은 주석 처리합니다:

| [...] submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING [...] |

그 후 Postfix를 재시작합니다:

service postfix restart

MySQL이 localhost뿐만 아니라 모든 인터페이스에서 수신 대기하도록 하려면 /etc/mysql/my.cnf를 편집하고 bind-address = 127.0.0.1 줄의 주석을 제거합니다:

vi /etc/mysql/my.cnf

| [...] # 대신 skip-networking의 기본값은 이제 # localhost에서만 수신 대기하는 것입니다. 이는 더 호환성이 있으며 덜 안전하지 않습니다. #bind-address = 127.0.0.1 [...] |

그런 다음 MySQL을 재시작합니다:

service mysql restart

이제 네트워킹이 활성화되었는지 확인합니다. 다음을 실행합니다:

netstat -tap | grep mysql

출력은 다음과 같아야 합니다:

root@server1:~# netstat -tap | grep mysql   
tcp        0      0 *:mysql                 *:*                     LISTEN      21298/mysqld   
root@server1:~#

13. Amavisd-new, SpamAssassin 및 Clamav 설치하기

amavisd-new, SpamAssassin 및 ClamAV를 설치하려면 다음을 실행합니다:

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl

ISPConfig 3 설정은 내부적으로 SpamAssassin 필터 라이브러리를 로드하는 amavisd를 사용하므로 RAM을 확보하기 위해 SpamAssassin을 중지할 수 있습니다:

service spamassassin stop  
update-rc.d -f spamassassin remove

14. Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear 및 mcrypt 설치하기

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear 및 mcrypt는 다음과 같이 설치할 수 있습니다:

apt-get install apache2 apache2-doc apache2-utils libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached snmp

PHP5 mcrypt 모듈은 수동으로 활성화해야 합니다:

php5enmod mcrypt

다음 질문을 보게 됩니다:

웹 서버를 자동으로 재구성하시겠습니까: <– apache2
phpmyadmin의 데이터베이스를 dbconfig-common으로 구성하시겠습니까? <– 아니요

그런 다음 다음 명령을 실행하여 Apache 모듈 suexec, rewrite, ssl, actions 및 include(원하는 경우 dav, dav_fs 및 auth_digest도 포함)를 활성화합니다:

a2enmod suexec rewrite ssl actions include cgi
a2enmod dav_fs dav auth_digest

다음으로 /etc/apache2/mods-available/suphp.conf를 엽니다…

vi /etc/apache2/mods-available/suphp.conf

… 그리고 섹션의 주석을 제거하고 다음 줄을 추가합니다. AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml - 그렇지 않으면 모든 PHP 파일이 SuPHP에 의해 실행됩니다:

| # # SetHandler application/x-httpd-suphp # suPHP_AddHandler application/x-httpd-suphp AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml suPHP_Engine on # 기본적으로 debian 패키지 웹 애플리케이션에 대해 suPHP를 비활성화합니다. 파일은 # root에 의해 소유되며 min_uid로 인해 suPHP에 의해 실행될 수 없습니다. suPHP_Engine off # # 특정 php 구성 파일을 사용합니다(php.ini 파일이 포함된 디렉토리) # suPHP_ConfigPath /etc/php5/cgi/suphp/ # # mod_suphp가 유형의 요청을 처리하지 않도록 합니다. # suPHP_RemoveHandler |

그 후 Apache를 재시작합니다:

service apache2 restart

ISPConfig를 통해 생성된 웹사이트에서 .rb 확장자를 가진 Ruby 파일을 호스팅하려면 /etc/mime.types에서 application/x-ruby rb 줄의 주석을 제거해야 합니다:

vi /etc/mime.types

| [...] #application/x-ruby rb [...] |

(이는 .rb 파일에만 필요합니다; .rbx 확장자를 가진 Ruby 파일은 기본적으로 작동합니다.)

그 후 Apache를 재시작합니다:

service apache2 restart

14.1 Xcache

Xcache는 PHP 중간 코드를 캐싱하고 최적화하기 위한 무료 오픈 PHP opcode 캐셔입니다. eAccelerator 및 APC와 같은 다른 PHP opcode 캐셔와 유사합니다. PHP 페이지 속도를 높이기 위해 이러한 것 중 하나를 설치하는 것이 강력히 권장됩니다.

Xcache는 다음과 같이 설치할 수 있습니다:

apt-get install php5-xcache

이제 Apache를 재시작합니다:

service apache2 restart

14.2 PHP-FPM

ISPConfig 3.0.5부터 Apache와 함께 사용할 수 있는 추가 PHP 모드인 PHP-FPM이 있습니다.

Apache와 함께 PHP-FPM을 사용하려면 mod_fastcgi Apache 모듈이 필요합니다(이것을 mod_fcgid와 혼동하지 마십시오 - 매우 유사하지만 mod_fcgid와 함께 PHP-FPM을 사용할 수 없습니다). PHP-FPM 및 mod_fastcgi는 다음과 같이 설치할 수 있습니다:

apt-get install libapache2-mod-fastcgi php5-fpm

모듈을 활성화하고 Apache를 재시작하는 것을 잊지 마십시오:

a2enmod actions fastcgi alias   
service apache2 restart

14.2 추가 PHP 버전

ISPConfig 3.0.5부터 하나의 서버에서 여러 PHP 버전을 가질 수 있습니다(ISPConfig를 통해 선택 가능) 이는 FastCGI 및 PHP-FPM을 통해 실행될 수 있습니다. 추가 PHP 버전(PHP-FPM 및 FastCGI)을 빌드하고 ISPConfig을 구성하는 방법에 대한 자세한 내용은 이 튜토리얼을 확인하십시오: ISPConfig 3 (Ubuntu 12.10)와 함께 여러 PHP 버전 사용 방법 (Ubuntu 14.04에서도 작동).

15. Mailman 설치하기

버전 3.0.4부터 ISPConfig는 Mailman 메일링 리스트를 관리(생성/수정/삭제)할 수 있습니다. 이 기능을 사용하려면 다음과 같이 Mailman을 설치합니다:

apt-get install mailman

최소한 하나의 언어를 선택합니다, 예:

지원할 언어: <– en (영어)
누락된 사이트 목록 <– 확인

Mailman을 시작하기 전에 mailman이라는 첫 번째 메일링 리스트를 생성해야 합니다:

newlist mailman

root@server1:~# newlist mailman
리스트를 운영하는 사람의 이메일을 입력하세요: <– 관리자 이메일 주소, 예: [email protected]
초기 mailman 비밀번호: <– mailman 리스트의 관리자 비밀번호
메일링 리스트를 생성하려면 /etc/aliases(또는 동등한) 파일을 편집하여 다음 줄을 추가하고, 필요에 따라 newaliases 프로그램을 실행해야 합니다:

mailman 메일링 리스트

mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”

Enter를 눌러 mailman 소유자에게 알리십시오… <– ENTER

root@server1:~#

그 후 /etc/aliases를 엽니다…

vi /etc/aliases

… 그리고 다음 줄을 추가합니다:

| [...] ## mailman 메일링 리스트 mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" |

그 후

newaliases

를 실행하고 Postfix를 재시작합니다:

service postfix restart

마지막으로 Mailman Apache 구성을 활성화해야 합니다:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf

이것은 모든 Apache vhosts에 대해 /cgi-bin/mailman/이라는 별칭을 정의하며, 이는 http:///cgi-bin/mailman/admin/에서 리스트의 Mailman 관리 인터페이스에 접근할 수 있음을 의미하며, 메일링 리스트 사용자에 대한 웹 페이지는 http:///cgi-bin/mailman/listinfo/에서 찾을 수 있습니다.

http:///pipermail에서 메일링 리스트 아카이브를 찾을 수 있습니다.

그 후 Apache를 재시작합니다:

service apache2 restart

그런 다음 Mailman 데몬을 시작합니다:

service mailman start
Share: X/Twitter LinkedIn

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

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