Apache включить рабочий mpm

Я настроил FastCGI и PHP5-FPM для работы на Ubuntu, который работает нормально.

Но я установил модуль "apache2 worker mpm" и хотел настроить и заменить "prefork mpm", который используется по умолчанию в apache2.

Все, что я нашел, было в CentOS в /etc/sysconfig/httpd просто положить HTTPD=/usr/sbin/httpd.worker сделает "рабочий MPM" включен.

  1. Как включить "рабочий mpm" в Ubuntu?

  2. Также, когда я перечисляю скомпилированные модули 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
Другие вопросы по тегам