AmiSEO Unix Установка apache mpm-itk на CentOS
Печать PDF

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

+ 3
+ 2

Если у вас не виртуальный хостинг, а выделенный виртуальный сервер или вообще железный сервер, то вам это может быть полезно.

В чем суть проблемы. При работе cms на хостинге все скрипты запускаются от имени apache и все файлы которые в процессе создаются принадлежат пользователю apache. Если вы создаете FTP доступ для какого-нибудь сайта, то вы не сможете через FTP ничего делать с файлами, созданными apache, потому что они вам не принадлежат. Можно конечно пользоваться root доступом через SSH, но если привычнее FTP или у вас есть клиенты, которым вы сдаете в аренду часть сервера, то это решение для вас.

Упрощенно mpm-itk — это Apache с запуском виртуальных хостов под указанными User и Group. Чаще всего используется на шаред хостингах. Процесс, работающий от пользователя root, анализирует, какому виртуальному хосту пришел запрос, после чего форкает самого себя с setuid на того пользователя, который указан в настройках данного виртуального хоста.

В результате всё, что далее вызывается апачем (в т.ч. mod_php, mod_python и прочие прелести) работают уже от имени пользователя данного виртуалхоста. Данная технология позволяет не использовать обходные пути типа mod_cgi, mod_fcgi, mod_fcgid и php-cgi.

Конечно, можно использовать php-cgi, mod_fcgi или suphp, но все они потребляют слишком много ресурсов (mod_fcgi и suphp) или же медленны (как php-cgi). Поэтому на серверах где ресурсы хочется съэкономить стоит устанавливать имеено apache с mpm-itk.

Привожу один из вариантов установки apache mpm-itk, опробованный мною лично.

Подключаем репозиторий CentALT

rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

Также требуется репозиторий EPEL, который у меня уже был подключен

rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Проверить, какие репозитории подключены можно командой

yum repolist

Устанавливаем Apache MPM-ITK

yum update httpd

При этом должно отобразиться, что установка будет выполнена из репозитория CentALT. Подтверждаете установку вводом «y»

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

Далее отредактируйте /etc/sysconfig/httpd — пропишите или раскоментируйте в нем строку

HTTPD=/usr/sbin/httpd.itk

Отредактируйте конфигурацию Apache — исправьте файл /etc/httpd/conf.d/php.conf — пропишите в него

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

Отредактируйте /etc/httpd/conf/httpd.conf — если есть какие-либо VirtualHost в нем, то поменяйте в нем SuexecUserGroup на AssignUserID например командой

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

Здесь же пропишите настройки также для модуля itk.c (все по аналогии с <IfModule prefork.c>, просто скопируйте его строки или исправьте в конфигурации). Например, так

<Ifmodule itk.c>
StartServers       1
MinSpareServers    1
MaxSpareServers   5
ServerLimit      110
MaxClients       100
MaxRequestsPerChild  4000
</Ifmodule>

Перезапустите Apache

service httpd restart

И убедитесь что запущен httpd.itk

ps ax|grep htt

Должен появиться список процессов с адресом /usr/sbin/httpd.itk

У меня стоит ISPConfig 3 и в нем необходимые настройки для apache mpm-itk уже есть. Для настройки панели ISPmanager предлагается сделать следующее:

Отредактируйте файл конфигурации ISPmanager — /usr/local/ispmgr/etc/ispmgr.conf и добавьте в него в начало файла

Option ApacheMPM
ApacheProcName httpd.itk

Перезапустите панель

killall ispmgr

И второй вариант установки apace mpm-itk на CentOS 5, который я не проверял

Для CentOS существует готовый RPM в репозитории Webtatic. Указанный RPM работает на базе уже установленного httpd и устанавливается в качестве отдельного mpm.

Для установки, во-первых, требуется добавить репозиторий Webtactic в yum

rpm -ivh http://repo.webtatic.com/yum/centos/5/`uname -i`/webtatic-release-5-0.noarch.rpm

Далее устанавливаем rpm

yum install --enablerepo=webtatic httpd-itk

Далее действуем так же, как и выше — редактируем конфиг файлы