Apache habilitar mpm de trabalho

8

Eu configurei o FastCGI e o PHP5-FPM para trabalhar no Ubuntu, que está funcionando bem.

Mas instalei o módulo "apache2 worker mpm" e queria configurar e substituir "prefork mpm" que é padrão no apache2.

Tudo que encontrei foi no CentOS, em /etc/sysconfig/httpd , e colocar HTTPD=/usr/sbin/httpd.worker ativará "trabalhador mpm" .

  1. Como habilitamos "worker mpm" no Ubuntu?

  2. Além disso, quando eu listar os módulos compilados do apache "/usr/sbin/apachectl -l" , ele não listará "prefork.c" , que diz estar listado, já que o usamos por padrão. Mas quando eu faço "/usr/sbin/apache2 -V | grep MPM" mostra "Servidor MPM: prefork" alguém pode explicar isso, por favor?

$ / usr / sbin / apache2 -V | grep MPM

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI
    
por sravis 16.09.2014 / 17:13

3 respostas

23

Depois de algum tempo de trabalho eu fiz isso sozinho. Você pode encontrar as etapas abaixo.

Verifique qual o apache do MPM em execução no momento:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Listar Módulos MPM Disponíveis (Certifique-se de que mpm_worker esteja listado)

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

Listar Módulos MPM Ativados (Se o mpm_worker não estiver habilitado, devemos ativá-lo e desabilitar o módulo 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

Desativar o módulo MPM_PREFORK

a2dismod mpm_prefork

Ativar o módulo MPM_WORKER

a2enmod mpm_worker

Para verificar se o Apache está sendo executado no MPM WORKER

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Se você receber este erro depois de executar estes comandos:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP

Tente remover o pacote libapache2:

apt-get remove libapache2-mod-php5
    
por sravis 17.09.2014 / 08:33
2

O Apache está executando um MPM encadeado, mas seu Módulo PHP não é compilado para ser thread-safe. Você precisa recompilar o PHP.

    
por twixi 14.10.2015 / 17:07
0

Se você receber este erro depois de executar estes comandos:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP

Tente remover o pacote libapache2:

apt-get remove libapache2-mod-php7.0
    
por David Van De Meer 03.03.2017 / 03:43