Установка сервера · 4 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 getmail

14 Установка 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 и некоторыми модулями PHP5, такими как php-mysql, которые вам нужны, если вы хотите использовать MySQL из ваших PHP-скриптов следующим образом:

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 предоставляет *реальную* поддержку PATH_INFO/PATH_TRANSLATED для CGI. Предыдущее поведение PHP заключалось в том, чтобы устанавливать PATH_TRANSLATED в SCRIPT_FILENAME и не понимать, что такое PATH_INFO. Для получения дополнительной информации о PATH_INFO смотрите спецификации cgi. Установка этого значения в 1 заставит PHP CGI исправить свои пути в соответствии со спецификацией. Установка значения ноль заставляет PHP вести себя как раньше. Значение по умолчанию - 1. Вы должны исправить свои скрипты, чтобы использовать SCRIPT_FILENAME вместо PATH_TRANSLATED. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |

(Пожалуйста, прочитайте http://wiki.nginx.org/Pitfalls, чтобы узнать, почему вы должны это сделать.)

Кроме того, чтобы избежать ошибок, таких как

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /usr/share/nginx/html/info.php on line 2

… в /var/log/php-fpm/www-error.log, когда вы вызываете PHP-скрипт в вашем браузере, вы должны установить date.timezone в /etc/php.ini:

| [...] [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 - это процесс-демон (с init-скриптом /etc/init.d/php-fpm), который запускает сервер FastCGI на порту 9000.

Чтобы получить поддержку CGI в nginx, мы устанавливаем Fcgiwrap.

Fcgiwrap - это обертка CGI, которая также должна работать для сложных CGI-скриптов и может использоваться для сред совместного хостинга, поскольку она позволяет каждому виртуальному хосту использовать свой собственный каталог 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.

Затем мы устанавливаем пакет spawn-fcgi, который позволяет нам запускать fcgiwrap как демон:

yum install spawn-fcgi

Откройте /etc/sysconfig/spawn-fcgi…

vi /etc/sysconfig/spawn-fcgi

… и измените файл следующим образом:

| # Вы должны установить некоторые рабочие параметры, прежде чем служба "spawn-fcgi" будет работать. # Если SOCKET указывает на файл, то этот файл очищается скриптом инициализации. # # См. 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 nginx

Создайте ссылки автозагрузки для spawn-fcgi…

chkconfig --levels 235 spawn-fcgi on

… и запустите его следующим образом:

/etc/init.d/spawn-fcgi start

Теперь вы должны найти сокет fcgiwrap в /var/run/fcgiwrap.socket, принадлежащий пользователю и группе apache (некоторые скрипты, например Mailman, ожидают, что будут запущены пользователем/группой apache, поэтому мы не запускаем spawn-fcgi от имени пользователя/группы nginx, а вместо этого добавляем nginx в группу apache).

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.