web-dev-qa-db-fra.com

Comment activer l'événement MPM Apache 2.4 sur Ubuntu 14.04 avec PHP thread-safe?

J'ai effectué une mise à niveau vers Ubuntu Server 14.04 en espérant que l'installation par défaut d'Apache utiliserait le nouvel événement MPM, mais je trouve à la place l'ancien préfork consommant beaucoup de mémoire.

J'ai réussi à configurer l'événement MPM sous Arch Linux, mais je ne parviens pas à le faire sous Ubuntu. Je continue à recevoir:

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

J'ai déjà installé php-fpm et configuré Apache2 pour l'utiliser, mais comme les fichiers de configuration d'Apache2 sont différents sous Ubuntu, je ne sais pas trop si je vais le faire au bon endroit.

Toute idée sur la façon de sécuriser le thread PHP afin de pouvoir utiliser Apache2 event-mpm? (sans avoir à recompiler manuellement php, bien sûr)

23
Towerman

Pour désactiver event MPM, vous pouvez utiliser Sudo a2dismod mpm_event et après cela, pour activer prefork, vous devez procéder à Sudo a2enmod mpm_prefork.

Enfin, redémarrez Apache:

Sudo service Apache2 restart
37
Mehraban

Cela a fonctionné pour moi.

Commencez par vérifier si ce paquet est installé:

dpkg -l | grep libapache2-mod-php5

Si vous l'avez, supprimez-le:

apt-get remove libapache2-mod-php5
13
Carlos Mafla

Vous pouvez installer plusieurs façons pour Apache de communiquer avec PHP en parallèle. Peut-être que vous avez (toujours) l'ancien mod_php installé, en plus de fastcgi/php-fpm.

Vous pouvez voir quels modules votre Apache a chargé au moment de l'exécution avec

Apache2ctl -M

Si nécessaire, utilisez Sudo pour obtenir les privilèges root. Si vous voyez php5_module (shared) parmi les modules actuellement utilisés par Apache, l'ancien mod_php est toujours installé et vous empêche d'utiliser mpm_worker ou mpm_event.

6

Pour moi, après avoir pleinement travaillé sur debian:

  1. Désactiver le prefork, activer l'événement: a2dismod mpm_prefork && a2enmod mpm_event
  2. supprimer mod-php5: aptitude remove libapache2-mod-php5
  3. Sachez que vous avez chaque php_ Option dans votre VHost encapsulé par <IfModule mod_php5.c></IfModule>, sinon Apache ne redémarrera pas.
  4. service Apache2 restart
2
suther

Recherchez les éléments suivants dans les sections Load Modules de votre fichier de configuration Apache:

LoadModule mpm_event_module modules/mod_mpm_event.so

Et remplacez-le par le module suivant:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so