Установка Apache MPM-ITK на CentOS и ISPmanager

Опубликовано: 20 октября 2014 / Обновлено: 10 января 2018
Раздел(ы): GNU Linux - CentOS / Debian
Просмотры: 14404
Комментарии: 0

Apache MPM-ITK, это патч к стандартному apache версии 2.2, который позволяет запускать скрипты, выполняемые вебсервером от имени пользователя — владельца сайта.
У меня интерес к apache2-mpm-itk возник не из-за вопросов безопасности. А ввиду того, что пользователи сервера теряют владельца на компоненты своих CMS при установке внутренними CMS-инструментами. О такой неприятной ситуации с WordPress я подробно описал в статье WordPress просит FTP доступ или работаем с WordPress без FTP.

Один из вариантов решения — это использование модуля Apache Mod_ruid2. А второй, который я опишу в данной статье — это использовать патч Apache MPM-ITK.

Проверка наличия mpm-itk

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

# stat /usr/sbin/httpd.itk
  File: `/usr/sbin/httpd.itk'
  Size: 363168          Blocks: 712        IO Block: 4096   regular file
Device: 6801h/26625d    Inode: 5512117     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-09-29 17:00:18.420030023 +0400
Modify: 2014-08-18 18:54:55.000000000 +0400
Change: 2014-09-29 16:48:48.768699179 +0400

Если имеется, то приступаем к настройкам, в противном случае начинаем установку.

Установка MPM-ITK

Apache MPM-ITK отсутствует в стандартном репозитории. Все популярные руководства по его устанвке ссылаются на репозиторий CentAlt, который в последнее время недоступен. Однако существуют и другие альтернативные решения. Для CentOS версии 6.Х Apache MPM-ITK присутствует в репозитории Epel.

Подключение репозитория для установки Apache MPM-ITK

Подключение репозитория EPEL для CentOS 6.5 x64:

# rpm --import http://mirror.yandex.ru/epel/RPM-GPG-KEY-EPEL-6
# rpm -ihv http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm

Подключение репозитория EPEL для CentOS 6.5 x32:

# rpm --import http://mirror.yandex.ru/epel/RPM-GPG-KEY-EPEL-6
# rpm -ihv http://mirror.yandex.ru/epel/6/i386/epel-release-6-8.noarch.rpm

Установка Apache MPM-ITK на CentOS

Для установки из репозитория EPEL выполните следующее:

# yum install httpd-itk

Настройка файлов конфигурации

Отредактируйте файл /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>

Если на сервере уже присутствуют домены и настроены какие-либо VirtualHost, то отредактируйте файл /etc/httpd/conf/httpd.conf, для этого поменяйте в нем SuexecUserGroup на AssignUserID (если такие записи имеются). Процесс можно автоматизировать одной из команд:

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

либо:

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

Отредактируйте файл /etc/httpd/conf/httpd.conf, добавьте в него по аналогии с <IfModule prefork.c> следующее:

# MPM-ITK
<IfModule itk.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

Внимание! У вас могут быть совсем другие значения! Конкретные данные берите по аналогии со своим блоком <IfModule prefork.c>.
Перезапустите вебсервер Apache:

# service httpd restart

Убедитесь, что Apache MPM-ITK работает:

# ps ax|grep htt
13554 ?        S      0:00 /usr/sbin/httpd.itk
13580 ?        S      0:00 /usr/sbin/httpd.itk
13588 ?        S      0:00 /usr/sbin/httpd.itk

в выводе в конце строк обязательно должно быть itk.

Настройка конфигурации панели ISPmanager

Отредактируйте файл /usr/local/ispmgr/etc/ispmgr.conf, добавьте в его начало следующее:

Option ApacheMPM
ApacheProcName httpd.itk

Это необходимо для корректной работы панели ISPManager с MPM-ITK, и чтобы при добавлении новых доменов в была указана строка AssignUserID.
Перезапустите панель:

# killall ispmgr

На этом установка и настройка закончены.

Конфигурация сервера CentOS и ISPmanager

Инструкция протестирована на CentOS 6.5 x86_64 с панелью ISPmanager-Lite 4.4.10.23. PHP работает на сервере как модуль Apache.
Инструкция подходит не только для PHP, но и для Perl скриптов.

Использованные источники

  1. Apache MPM-ITK на CentOS с ISPmanager4
  2. переводим Apache в режим mpm-ITK + ISPmanager
  3. Установка mpm-itk на CentOS/ISPmanager

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.
© Юрий Рассадников, 2011 - 2024
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 6 | 0,135 сек. | 8.34 МБ