После установки модуля Apache libapache2-mpm-itk на сервер под ОС Debian 9, модуль находится на диске сервера, но для его работы, его нужно подключить к Апачу. Данный модуль служит для того, чтобы запускать процессы Apache с правами того пользователя, который является владельцем файлов сайта (по сути, владельцем сайта). О том, как это включить этот модуль и как проверить то, что модуль действительно подключился, рассмотрим в этой статье.
Исходная картина настроек Apache с отключенным модулем mpm-itk
Для того, чтобы судить об изменениях в системе, нужно разобраться с её изначальными настройками. Поэтому посмотрим на версию установленного Apache для того, чтобы потом сравнить её с той, которая станет после включения модуля mpm-itk. Итак, имеем:
root@server:~# apachectl -V
Server version: Apache/2.4.25 (Debian)
Server built: 2019-04-02T19:05:13
Server's Module Magic Number: 20120211:68
Server loaded: APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
Как я уже обращал внимание в статье про установку Apache, его исходной конфигурацией MPM является event
. Это видно по строке Server MPM: event
в листинге выше.
Подключение модуля mpm-itk к серверу Apache под Debian 9
После установки модуля mpm-itk ничего не меняется, значит включим этот модуль вручную:
root@sever:~# a2enmod mpm_itk
Considering dependency mpm_prefork for mpm_itk:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Module mpm_itk already enabled
Как видно, при акцивации модуля mpm-itk вышел конфликт с mpm_event
и mpm_worker
и была подключена конфигурация MPM mpm_prefork for mpm_itk
.
Перезагрузим Апач:
root@server:~# apachectl restart
Новая конфигурация Apache с включенным модулем mpm-itk
Убедимся в том, что при подключении модуля mpm-itk произошла смена конфигурация MPM с event
на prefork
:
root@server:~# apachectl -V
Server version: Apache/2.4.25 (Debian)
Server built: 2019-04-02T19:05:13
Server's Module Magic Number: 20120211:68
Server loaded: APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
Резюме
Таким образом происходит подключение модуля mpm-itk к серверу Apache под Debian 9 со всеми вытекающими последствиями и автоматической сменой конфигурации MPM этого WEB-сервера.
Отследить, что Apache запускается теперь под пользователем www-data
, можно посмотрев на список запущенных процессов с помощью команды top
. После настройки виртуальных хостов, надо будет ещё раз проверить, соответствует ли имя пользователя, под которым запущен процесс с пользователем, прописанным в конфиге виртуального хоста.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)