Установка mpm-itk на apache2. Работа виртуальных хостов под разными пользователями.
Установка и настройка в ubuntu
Для начала установим сам модуль
# apt-get install apache2-mpm-itk
Допустим, что сайты у нас уже есть и находятся в пользовательских каталогах. Сообтветственно нам не нужно создавать пользователей. Если это не так то можно создать пользователей для каждого сайта с помощью useradd с аргументом -d, в котором укажем каталог сайта в качестве домашнего каталога.
Затем правим конфигурационный файл apache.
# nano /etc/apache2/apache2.conf
Внутрь каждого виртуального хоста добавляем такие строки:
AssignUserId user1 user1
</IfModule><IfModule mpm_itk_module>
Где user1 user1 - пользователь и группа соответственно.
Перезапускаем apache2
# service apache2 restart
Установка в CentOS
Установим модуль
# yum install httpd-itk
Правим конфигурационные файлы
# nano /etc/sysconfig/httpd
Раскомментируем и изменяем строку на такую:
HTTPD=/usr/sbin/httpd.itk
# nano /etc/httpd/conf.d/php.conf
Добавляем:
LoadModule php5_module modules/libphp5.so
</IfModule><IfModule itk.c>
Меняем диррективу SuexecUserGroup на AssignUserID для существующих доменов.
# sed -i -e 's/SuexecUserGroup/AssignUserID/g' /etc/httpd/conf/httpd.conf
Для вновь созданных доменов в виртуальном хосте нужно указывать
AssignUserID user1 user1
Где user1 user1 - пользователь и группа соответственно.
# nano /etc/httpd/conf/httpd.conf
Вставляем настройки модуля перед виртуальными хостами
StartServers 1
MinSpareServers 1
MaxSpareServers 25
ServerLimit 25
MaxClients 25
MaxRequestsPerChild 4000
</IfModule><IfModule itk.c>
Перезапускаем apache
# service httpd restart
Настройка для сервера с панелью isp.
Откроем конфигурационный файл isp
# nano /usr/local/ispmgr/etc/ispmgr.conf
И в самом начале добавим строку:
Option ApacheMPM
И рестартим панель
# killall -9 ispmgr
Как проверить что все работает правильно?
В папке виртуального хоста создаем файл с расширением .php и примерно таким содержанием:
$userinfo = posix_getpwuid(posix_getuid());
echo $userinfo['name'];
?><?php
Или таким:
<?php echo exec('whoami'); ?>
Открываем этот файл в браузере и выводом этого файла должно быть имя пользователя под которым работает этот скрипт. Так же не забываем что если сервер функционирует давно то в подкаталогах куча фалов принадлежащих пользователю www-data. Неплохо бы сделать chown -R username на каталоги сайтов.
Не работает mpm-itk в ubuntu 13.10. Какие танцы с бубном нужны? И апач, и mpm-itk из репов. Апач 2.4.6
Ставил на ubuntu 13.10, так же как и Вы всё из репозиториев. Никаких танцев с бубном не заметил. Всё ставил как описано в статье. Почему у вас не завелось не могу сказать не видя настройки сервера. Могу только посоветовать смотреть логи, и проверить настройки апача.
после установки не создаются бесплатные домены
Отлично всё описано. На Centos 6.x настроилось без проблем.
после добавления строки
HTTPD=/usr/sbin/httpd.itk
Получил такое
Failed to apply changes :
Syntax error on line 113 of /etc/httpd/conf/httpd.conf:
Invalid command ’HTTPD=/usr/sbin/httpd.itk’, perhaps misspelled or defined by a module not included in the server configuration
Centos 6.8