Apache enable worker mpm

10

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

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

Tudo o que eu encontrei foi no CentOS em /etc/sysconfig/httpdapenas colocando HTTPD=/usr/sbin/httpd.workerfará "mpm trabalhador" habilitado.

  1. Como habilitamos o "worker mpm" no Ubuntu?

  2. Também quando eu listar os módulos compilados do apache, "/usr/sbin/apachectl -l"ele não listará o "prefork.c"que disse estar listado, pois estamos usando-o por padrão. Mas quando eu faço "/usr/sbin/apache2 -V | grep MPM"isso 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
sravis
fonte

Respostas:

29

Depois de algum tempo trabalhando, eu mesmo fiz. Você pode encontrar as etapas abaixo.

Verifique qual MPM apache está atualmente em execução:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Listar módulos MPM disponíveis (verifique se mpm_worker está 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

Lista de módulos MPM ativados (se mpm_worker não estiver ativado, devemos ativá-lo e desativar 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 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 após 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
sravis
fonte
2
Siga as instruções, mas obtendo o seguinte: * Reiniciando o servidor web apache2 [falha] * O apache2 configtest falhou. A saída do teste de configuração foi: AH00534: apache2: Erro de configuração: Mais de um MPM carregado. A ação 'configtest' falhou. O log de erros do Apache pode ter mais informações.
Neovie
perfeito :) está funcionando para mim.
chirag jagani
Ele está dando o erro "O Apache está executando um MPM encadeado, mas o seu módulo PHP não foi compilado para ser seguro para threads. Você precisa recompilar o PHP" e remover o libapache2-mod-php5 também não está ajudando.
ICyborg
2

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

twixi
fonte
0

Se você receber este erro após 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
David Van De Meer
fonte