Я использую VPS под управлением Apache2.4 и CentOS7. Я столкнулся с некоторыми проблемами с потоками и хотел бы попробовать запустить Apache в режиме предварительной вилки.
Если я сбегу apachectl -V
чтобы проверить, в каком режиме я нахожусь, я получаю такой результат:
Server MPM: worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Однако, когда я проверяю MPM conf (/etc/httpd/conf.modules.d/00-mpm.conf
), Я вижу, что модуль prefork загружен:
#HTTPD=/usr/sbin/httpd.worker
#OPTIONS=
HTTPD_LANG=C
#PIDFILE=/var/run/httpd/httpd.pid
# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
#LoadModule mpm_event_module modules/mod_mpm_event.so
И дальше, если я проверю /etc/sysconfig/httpd
Я вижу, что рабочая строка закомментирована:
#HTTPD=/usr/sbin/httpd.worker
#OPTIONS=
HTTPD_LANG=C
#PIDFILE=/var/run/httpd/httpd.pid
Я проверил, действительно ли эта конфигурация применяется к экземпляру Apache, который я использую. Например узор /etc/httpd/conf.modules.d/*.conf
входит в мой httpd.conf
файл. Возможно, эти параметры где-то перезаписываются, или я что-то упустил? Спасибо!
Я нашел проблему; Был еще один файл conf /etc/apache2/conf.modules.d/000_mod_mpm_worker.conf
который загружает mpm_worker_module
. Я пытался раскомментировать LoadModule
в этом файле, но затем я получил сообщение об ошибке от Apache при перезапуске, сообщающее мне, что модуль MPM не загружен. Окончательным решением было изменить этот файл на 000_mod_mpm_prefork.conf
и загрузить mpm_prefork_module
внутри него.