Имеем сервер с центосом на борту и панелькой управления ISPmanager Pro (разницы нет, инструкция подойдет и для Lite). Задача: запускать PHP от имени пользователя. Для реализации есть два варианта:

  • MPM-ITK + mod_php (PHP как модуль apache)
  • MPM-Prefork + mod_fcgi (PHP в режиме FastCGI)

Я выбрал первый вариант по своим соображениям. На втором варианте особого смысла останавливаться нет, т.к. с ним можно работать из ISP, а вот с первым вариантом придется поработать руками.. Итак, начнем. После установки ISPmanager имеем apache 2 с MPM-prefork.

1) Проверяем, есть ли нужный модуль в установленной сборке веб-сервера apache командой:

apachectl -t -D DUMP_MODULES | grep itk

Если получаем: mpm_itk_module (static), значит нужный нам модуль уже установлен и второй пункт можно пропустить.

2) Добавляем репо CentALT:

rpm -ihv http://centos.alt.ru/repository/centos/6/i386/centalt-release-6-1.noarch.rpm — для 32 битных систем
rpm -ihv http://centos.alt.ru/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm - для 64 битных систем

После добавления репо, его необходимо отключить, чтобы не было конфликта в системе. Открываем /etc/yum.repos.d/centalt.repo, в строке: enabled=1 меняем значение на 0.

3) Обновляем apache из нового репо:

yum --enablerepo=CentALT update httpd

4) Настраиваем:

4.1) Открываем: /etc/sysconfig/httpd, и вставляем (расскоментируем, если она есть)строчку HTTPD=/usr/sbin/httpd.itk

4.2) Открываем: /etc/httpd/conf/httpd.conf, вставляем:

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

Внимание! Эти настройки для моего сервера и под мои задачи. Неправильная настройка этих параметров может привести к утечке ОЗУ на сервере!

4.3) Открываем: /etc/httpd/conf.d/php.conf, вставляем:

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

4.4) Открываем: /usr/local/ispmgr/etc/ispmgr.conf, добавляем строку:

Option ApacheMPM

Далее в этом же файле находим строку: ApacheProcName httpd и меняем на ApacheProcName httpd.itk

4.5) Выполняем команды (по порядку!):

perl -p -i -e 's/SuexecUserGroup/AssignUserID/g' /etc/httpd/conf/httpd.conf
killall -9 ispmgr
killall -9 httpd
service httpd restart
ps ax | grep httpd

Последняя команда должна показать список процессов в конце названия которых красуется .itk.

Подписываемся на обновления блога по Email:

Введите адрес электронной почты



Метки: , , , , , ,

Оставьте свой комментарий