Установка mpm-itk на CentOS/ISPmanager

Материал из wiki.owlhost.net
Перейти к: навигация, поиск


Содержание

[править] Преимущества mpm-itk

Как известно, установка интерпретатора PHP в качестве модуля веб-сервера Apache обеспечивает максимальную скорость работы интерпретатора, но при этом имеет некоторые недостатки, наиболее существенным из которых является запуск PHP от имени того системного пользователя, от которого запускается сам Apache. Это приводит к необходимости устанавливать на файлы скриптов разрешение на запись для всех (права доступа 666), что негативно влияет на безопасность, или же устанавливать владельцем файлов пользователя Apache, что затрудняет работу со скриптами для пользователя, которому они принадлежат. Patch ITK успешно решает эту проблему, позволяя Apache обрабатывать запросы к виртуальным хостам (сайтам пользователей) от имени пользователя - владельца сайта. Тем самым, сохраняются преимущества установки PHP как модуля Apache, и решаются проблемы с правами доступа на скрипты PHP.

[править] Проверка наличия бинарного файла mpm-itk

Перед настройкой mpm-itk необходимо проверить, имеется ли бинарный файл mpm-itk на сервере (это зависит от того, как был скомпилирован пакет Apache). Для этого выполняем следующие действия:

Подключаемся к серверу по средствам SSH протокола:

ssh root@123.123.123.123

Проверяем, имеется ли на сервере бинарный файл httpd.itk, который обычно расположен в /usr/sbin/httpd.itk :

stat /usr/sbin/httpd.itk

Если имеется,приступаем к следующему шагу, если нет,необходимо произвести его установку.

[править] Установка MPM-ITK

Подключаем репозиторий CentALT. Ссылка на RPM-файлы репозитория (CentOS 5,6; i386/i686/x86_64)

http://centos.alt.ru/pub/repository/centos/6/i386/centalt-release-6-1.noarch.rpm

После чего выполняем команду:

yum update httpd

Подтверждаем установку,нажатием y.

[править] Редактирование конфигурационных файлов

В файл nano /etc/sysconfig/httpd Добавляем строку или раскомментируем ее:

HTTPD=/usr/sbin/httpd.itk

В файл nano /etc/httpd/conf.d/php.conf добавляем строку:

<IfModule itk.c>
 LoadModule php5_module modules/libphp5.so
</IfModule>

Если на сервере уже имеются домены, то исправляем для них SuexecUserGroup на AssignUserID командой:

sed -i -e 's/SuexecUserGroup/AssignUserID/g' /etc/httpd/conf/httpd.conf

или

perl -p -i -e 's/SuexecUserGroup/AssignUserID/g' /etc/httpd/conf/httpd.conf

а так же устанавливаем настройки для MPM-ITK, добавляя блок(в зависимости от технических характеристик сервера):

<IfModule itk.c>
 StartServers       1
 MinSpareServers    1
 MaxSpareServers    25
 ServerLimit        25
 MaxClients         25
 MaxRequestsPerChild  4000
</IfModule>

в файл /etc/httpd/conf/httpd.conf

Перезапускаем HTTPD:

/etc/init.d/httpd restart

или

service httpd restart

[править] Проверка работы MPM-ITK

Для проверки того,что запущен именно MPM-ITK, выполним команду:

ps aux | grep httpd.itk

Вывод которой должен быть примерно следующим:

root     32185  0.0  1.3  23092  7312 ?        Ss   05:40   0:00 /usr/sbin/httpd.itk
root     32187  0.0  0.6  23092  3648 ?        S    05:40   0:00 /usr/sbin/httpd.itk
root     32189  0.0  0.1   5508   776 pts/0    S+   05:40   0:00 grep httpd.itk

[править] Настройка ISPManager

В самом начале файла /usr/local/ispmgr/etc/ispmgr.conf добавляем строки:

Option ApacheMPM
ApacheProcName httpd.itk

Это необходимо для корректной работы панели ISPManager с MPM-ITK, а так же для того,что бы при добавлении новых доменов средствами панели, в <VirtualHost> была указана строка AssignUserID.

Установка и настройка завершена. Убиваем процесс панели управления ISPManager, что бы при последующем запуске панель могла считать новые настройки:

killall -9 ispmgr

Успешной работы!