Apache habilitar trabajador mpm

10

He configurado FastCGI y PHP5-FPM para trabajar en ubuntu, que funciona bien.

Pero instalé el módulo "apache2 worker mpm" y quería configurar y reemplazar "prefork mpm", que es el valor predeterminado en apache2.

Todo lo que encontré fue en CentOS con /etc/sysconfig/httpdsolo ponerlo HTTPD=/usr/sbin/httpd.worker, habilitará "trabajador mpm" .

  1. ¿Cómo habilitamos "trabajador mpm" en Ubuntu?

  2. Además, cuando enumero los módulos compilados de apache "/usr/sbin/apachectl -l", no enumerará lo "prefork.c"que se dice que está enumerando, ya que lo estamos usando de forma predeterminada. Pero cuando lo hago "/usr/sbin/apache2 -V | grep MPM"muestra "Server MPM: prefork" ¿alguien puede explicar esto por favor?

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

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI
sravis
fuente

Respuestas:

29

Después de un tiempo de trabajo, lo hice yo mismo. Puedes encontrar los pasos a continuación.

Compruebe qué MPM apache se está ejecutando actualmente:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Enumerar los módulos MPM disponibles (asegúrese de que mpm_worker esté en la lista)

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 habilitados (si mpm_worker no está habilitado, deberíamos habilitarlo y deshabilitar el 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

Deshabilitar el módulo MPM_PREFORK

a2dismod mpm_prefork

Habilitar el módulo MPM_WORKER

a2enmod mpm_worker

Para verificar si Apache se está ejecutando en MPM WORKER

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Si obtiene este error después de ejecutar estos comandos:

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

Intente eliminar el paquete libapache2:

apt-get remove libapache2-mod-php5
sravis
fuente
2
Seguí las instrucciones pero obteniendo esto: * Reiniciando el servidor web apache2 [fail] * El configtest de apache2 falló. La salida de la prueba de configuración fue: AH00534: apache2: Error de configuración: más de un MPM cargado. La acción 'configtest' falló. El registro de errores de Apache puede tener más información.
neobie
perfecto :) está funcionando para mí.
chirag jagani
Está dando el error "Apache está ejecutando un MPM enhebrado, pero su Módulo PHP no está compilado para ser seguro. Necesita recompilar PHP" y eliminar libapache2-mod-php5 tampoco ayuda.
iCyborg
2

Apache está ejecutando un MPM roscado, pero su módulo PHP no está compilado para ser seguro para subprocesos. Necesitas recompilar PHP.

twixi
fuente
0

Si obtiene este error después de ejecutar estos comandos:

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

Intente eliminar el paquete libapache2:

apt-get remove libapache2-mod-php7.0
David Van De Meer
fuente