서버 설정 · 3 min read · Oct 08, 2025
완벽한 서버 - CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3) - 페이지 4
11 Dovecot 설치
Dovecot은 다음과 같이 설치할 수 있습니다:
yum install dovecot dovecot-mysql이제 시스템 시작 링크를 생성하고 Dovecot을 시작합니다:
chkconfig –levels 235 dovecot on
/etc/init.d/dovecot start
12 Postfix 설치
Postfix는 다음과 같이 설치할 수 있습니다:
yum install postfix그런 다음 Sendmail을 끄고 Postfix를 시작합니다:
chkconfig –levels 235 sendmail off
chkconfig –levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix restart
13 Getmail 설치
Getmail은 다음과 같이 설치할 수 있습니다:
yum install getmail14 Amavisd-new, SpamAssassin 및 ClamAV 설치
amavisd-new, spamassassin 및 clamav를 설치하려면 다음 명령을 실행합니다:
yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql그런 다음 freshclam, amavisd 및 clamd.amavisd를 시작합니다:
sa-update
chkconfig –levels 235 amavisd on
chkconfig –del clamd
chkconfig –levels 235 clamd.amavisd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd.amavisd start
15 Nginx, PHP5 (PHP-FPM) 및 Fcgiwrap 설치
Nginx는 CentOS 6.3 (EPEL에서)용 패키지로 제공되며 다음과 같이 설치할 수 있습니다:
yum install nginx시스템에 Apache2가 이미 설치되어 있다면 지금 중지하십시오…
/etc/init.d/httpd stop… 그리고 Apache의 시스템 시작 링크를 제거합니다:
chkconfig --del httpd그런 다음 nginx의 시스템 시작 링크를 생성하고 시작합니다:
chkconfig –levels 235 nginx on
/etc/init.d/nginx start
(만약 Apache2와 nginx가 모두 설치되어 있다면, ISPConfig 3 설치 프로그램이 어떤 것을 사용할 것인지 물어볼 것입니다 - 이 경우 nginx라고 대답하십시오. 이 둘 중 하나만 설치되어 있다면, ISPConfig가 필요한 구성을 자동으로 수행합니다.)
PHP5를 nginx에서 PHP-FPM을 통해 작동하게 만들 수 있습니다 (PHP-FPM (FastCGI Process Manager)은 모든 크기의 사이트, 특히 더 바쁜 사이트에 유용한 추가 기능이 있는 대체 PHP FastCGI 구현입니다). php-fpm을 php-cli 및 MySQL을 PHP 스크립트에서 사용하려는 경우 필요한 php-mysql과 같은 일부 PHP5 모듈과 함께 설치할 수 있습니다:
yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy다음으로 /etc/php.ini를 엽니다…
vi /etc/php.ini… 그리고 오류 보고를 변경합니다 (더 이상 공지가 표시되지 않도록):
| [...] ;error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE [...] |
또한 cgi.fix_pathinfo=0으로 설정합니다:
vi /etc/php.ini| [...] ; cgi.fix_pathinfo는 CGI에 대한 *실제* PATH_INFO/PATH_TRANSLATED 지원을 제공합니다. PHP의 ; 이전 동작은 PATH_TRANSLATED를 SCRIPT_FILENAME으로 설정하고 PATH_INFO가 무엇인지 이해하지 못했습니다. ; PATH_INFO에 대한 자세한 내용은 cgi 사양을 참조하십시오. 이를 1로 설정하면 PHP CGI가 사양에 맞게 경로를 수정합니다. 0으로 설정하면 PHP가 이전과 같이 동작합니다. 기본값은 1입니다. 스크립트를 수정하여 ; PATH_TRANSLATED가 아닌 SCRIPT_FILENAME을 사용해야 합니다. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |
(이 작업을 수행해야 하는 이유는 http://wiki.nginx.org/Pitfalls를 읽어보십시오.)
또한 PHP 스크립트를 브라우저에서 호출할 때 /var/log/php-fpm/www-error.log에서 다음과 같은 오류를 피하기 위해:
[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): 시스템의 시간대 설정에 의존하는 것은 안전하지 않습니다. date.timezone 설정 또는 date_default_timezone_set() 함수를 사용해야 합니다. 이러한 방법 중 하나를 사용했지만 여전히 이 경고가 표시된다면, 시간대 식별자를 잘못 입력했을 가능성이 높습니다. /usr/share/nginx/html/info.php의 2번째 줄에서 'CEST/2.0/DST'에 대해 'Europe/Berlin'을 선택했습니다.… /etc/php.ini에서 date.timezone을 설정해야 합니다:
| [...] [Date] ; 날짜 함수에서 사용하는 기본 시간대를 정의합니다. ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Berlin" [...] |
시스템에 대한 올바른 시간대를 찾으려면 다음을 실행하십시오:
cat /etc/sysconfig/clock[root@server1 tmp]# cat /etc/sysconfig/clock
ZONE=”Europe/Berlin”
[root@server1 tmp]#
다음으로 php-fpm의 시스템 시작 링크를 생성하고 시작합니다:
chkconfig –levels 235 php-fpm on
/etc/init.d/php-fpm start
PHP-FPM은 포트 9000에서 FastCGI 서버를 실행하는 데몬 프로세스입니다 (init 스크립트는 /etc/init.d/php-fpm입니다).
nginx에서 CGI 지원을 받으려면 Fcgiwrap을 설치합니다.
Fcgiwrap은 복잡한 CGI 스크립트에도 작동해야 하는 CGI 래퍼이며, 각 vhost가 자신의 cgi-bin 디렉토리를 사용할 수 있도록 해주기 때문에 공유 호스팅 환경에서 사용할 수 있습니다.
CentOS 6.3에 대한 fcgiwrap 패키지가 없으므로 직접 빌드해야 합니다. 먼저 몇 가지 필수 패키지를 설치합니다:
yum install fcgi-devel이제 다음과 같이 fcgiwrap을 빌드할 수 있습니다:
cd /usr/local/src/
git clone git://github.com/gnosek/fcgiwrap.git
cd fcgiwrap
autoreconf -i
./configure
make
make install
이렇게 하면 fcgiwrap이 /usr/local/sbin/fcgiwrap에 설치됩니다.
다음으로 fcgiwrap을 데몬으로 실행할 수 있도록 해주는 spawn-fcgi 패키지를 설치합니다:
yum install spawn-fcgi/etc/sysconfig/spawn-fcgi를 엽니다…
vi /etc/sysconfig/spawn-fcgi… 그리고 파일을 다음과 같이 수정합니다:
| # "spawn-fcgi" 서비스가 작동하기 전에 몇 가지 작업 옵션을 설정해야 합니다. # SOCKET이 파일을 가리키면, 이 파일은 init 스크립트에 의해 정리됩니다. # # spawn-fcgi(1)를 참조하여 모든 가능한 옵션을 확인하십시오. # # 예: #SOCKET=/var/run/php-fcgi.sock #OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi" FCGI_SOCKET=/var/run/fcgiwrap.socket FCGI_PROGRAM=/usr/local/sbin/fcgiwrap FCGI_USER=apache FCGI_GROUP=apache FCGI_EXTRA_OPTIONS="-M 0770" OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM" |
이제 사용자 nginx를 그룹 apache에 추가합니다:
usermod -a -G apache nginxspawn-fcgi의 시스템 시작 링크를 생성합니다…
chkconfig --levels 235 spawn-fcgi on… 그리고 다음과 같이 시작합니다:
/etc/init.d/spawn-fcgi start이제 /var/run/fcgiwrap.socket에서 fcgiwrap 소켓을 찾을 수 있으며, 이는 사용자 및 그룹 apache에 의해 소유됩니다 (일부 스크립트, 예: Mailman은 사용자/그룹 apache로 실행되기를 기대하므로, nginx 사용자/그룹으로 spawn-fcgi를 실행하지 않고 nginx를 apache 그룹에 추가합니다).
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.