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

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

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

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

Для установки, во-первых, требуется добавить репозиторий 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

Останавливаем httpd:

service httpd stop

Далее необходимо исправить /etc/sysconfig/httpd и добавить (или заменить, или раскомментировать) строку:

HTTPD=/usr/sbin/httpd.itk

Далее виртуалхостам необходимо добавить директиву AssignUserID с указанием пользователя и группы данного виртуального хоста:

... <virtualhost :80=""> ServerName example.com DocumentRoot /path/to/web/root AssignUserId vhost-user vhost-group </virtualhost> ...

В случае работы php как модуля необходимо добавить в начало файла /etc/httpd/conf.d/php.conf строки:

<ifmodule itk=""> LoadModule php5_module modules/libphp5.so </ifmodule>

Запускаем httpd:

service httpd start

Далее необходимо произвести аудит безопасности на предмет владельцев папок корня каждого виртуалхоста и прав. Об этом как-нибудь потом.