¿Cómo habilitar el evento MPM Apache 2.4 en Ubuntu 14.04 con PHP seguro para subprocesos?

21

Actualicé a Ubuntu Server 14.04 esperando que la instalación de Apache por defecto usaría el nuevo evento MPM, pero en su lugar encontré el prefork viejo de memoria.

Establecí con éxito el evento MPM en Arch Linux, pero no lo hago en Ubuntu. Sigo recibiendo:

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

Ya instalé php-fpm y configuré apache2 para usarlo, pero como los archivos de configuración para apache2 son diferentes en Ubuntu, no estoy seguro de si lo estoy haciendo en el lugar correcto.

¿Alguna idea sobre cómo hacer que PHP sea seguro para poder usar apache2 event-mpm? (sin tener que recompilar manualmente php, por supuesto)

    
pregunta Towerman 23.04.2014 - 05:32

5 respuestas

33

Para desactivar event MPM , puede hacer sudo a2dismod mpm_event y luego para habilitar prefork , debe hacer sudo a2enmod mpm_prefork .

Por último, reinicie Apache:

sudo service apache2 restart
    
respondido por el Mehraban 16.05.2016 - 08:55
12

Esto funcionó para mí.

Primero comprueba si tienes este paquete instalado:

dpkg -l | grep libapache2-mod-php5

Si lo tiene, simplemente elimínelo:

apt-get remove libapache2-mod-php5
    
respondido por el Carlos Mafla 03.12.2015 - 02:24
6

Puede instalar múltiples formas para que Apache se comunique con PHP en paralelo. Tal vez tienes (todavía) el antiguo mod_php instalado, además de fastcgi / php-fpm.

Puedes ver qué módulos ha cargado tu Apache en tiempo de ejecución con

apache2ctl -M

Si es necesario, use sudo para obtener privilegios de administrador. Si ve php5_module (shared) entre los módulos que su Apache está utilizando actualmente, el antiguo mod_php todavía está instalado y le impide usar mpm_worker o mpm_event .

    
respondido por el Henning Kockerbeck 25.05.2014 - 14:50
1

Busque lo siguiente en las secciones de Load Modules de su archivo de configuración de apache:

LoadModule mpm_event_module modules/mod_mpm_event.so

Y reemplácelo con el siguiente módulo:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    
respondido por el Ajsti.pl - Maciej Szewczyk 16.05.2016 - 08:57
0

Para mí, después de trabajar completamente en Debian:

  1. Desactivar prefork, habilitar evento: a2dismod mpm_prefork && a2enmod mpm_event
  2. eliminar mod-php5: aptitude remove libapache2-mod-php5
  3. Tenga en cuenta que tiene cada opción php_ en su encapsulado de VHost por <IfModule mod_php5.c></IfModule> ; de lo contrario, apache no se reiniciará
  4. do service apache2 restart
respondido por el suther 10.10.2017 - 10:29

Lea otras preguntas en las etiquetas