Apache включить рабочий mpm
Я настроил FastCGI и PHP5-FPM для работы на Ubuntu, который работает нормально.
Но я установил модуль "apache2 worker mpm" и хотел настроить и заменить "prefork mpm", который используется по умолчанию в apache2.
Все, что я нашел, было в CentOS в /etc/sysconfig/httpd
просто положить HTTPD=/usr/sbin/httpd.worker
сделает "рабочий MPM" включен.
Как включить "рабочий mpm" в Ubuntu?
Также, когда я перечисляю скомпилированные модули apache
"/usr/sbin/apachectl -l"
это не будет список"prefork.c"
который называется листингом, так как мы используем его по умолчанию. Но, когда я делаю"/usr/sbin/apache2 -V | grep MPM"
он показывает "Server MPM: prefork", может кто-нибудь объяснить это, пожалуйста?
$ / usr / sbin / apache2 -V | grep MPM
Server MPM: prefork
phpinfo ();
Server API : FPM/FastCGI
3 ответа
После некоторого времени работы я сделал это сам. Вы можете найти шаги ниже.
Проверьте, какой Apache MPM работает в данный момент:
apachectl -V | grep -i mpm
Result:
Server MPM: prefork
Список доступных модулей MPM (убедитесь, что mpm_worker указан в списке)
ls /etc/apache2/mods-available/mpm*
Result:
/etc/apache2/mods-available/mpm_event.conf /etc/apache2/mods-available/mpm_prefork.conf /etc/apache2/mods-available/mpm_worker.conf
/etc/apache2/mods-available/mpm_event.load /etc/apache2/mods-available/mpm_prefork.load /etc/apache2/mods-available/mpm_worker.load
Список включенных модулей MPM (если mpm_worker не включен, мы должны включить его и отключить модуль mpm_prefork)
ls -l /etc/apache2/mods-enabled/mpm*
Result:
/etc/apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
/etc/apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load
Отключить модуль MPM_PREFORK
a2dismod mpm_prefork
Включить модуль MPM_WORKER
a2enmod mpm_worker
Чтобы проверить, работает ли Apache на MPM WORKER
apachectl -V | grep -i mpm
Result:
Server MPM: worker
Если вы получите эту ошибку после выполнения этих команд:
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP
Попробуйте удалить пакет libapache2:
apt-get remove libapache2-mod-php5
Apache работает с многопоточным MPM, но ваш модуль PHP не скомпилирован для обеспечения многопоточности. Вам нужно перекомпилировать PHP.
Если вы получите эту ошибку после выполнения этих команд:
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP
Попробуйте удалить пакет libapache2:
apt-get remove libapache2-mod-php7.0