J'ai mis à niveau vers Ubuntu Server 14.04 en m'attendant à ce que l'installation par défaut d'Apache utilise le nouvel événement MPM, mais à la place, je trouve l'ancienne préfork consommatrice de mémoire.
J'ai réussi à configurer l'événement MPM dans Arch Linux, mais je ne le fais pas sur Ubuntu. Je reçois toujours:
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 pour apache2 sont différents sur Ubuntu, je ne sais pas trop si je le fais au bon endroit.
Une idée sur la façon de sécuriser le fil PHP afin que je puisse utiliser apache2 event-mpm? (sans avoir à recompiler manuellement php, bien sûr)
sudo service apache2 restart
Cela a fonctionné pour moi.
Vérifiez d'abord si ce package est installé:
Si vous l'avez, retirez-le:
la source
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 avec quels modules votre Apache a été chargé lors de l'exécution avec
Si nécessaire, utilisez
sudo
pour obtenir les privilèges root. Si vous voyezphp5_module (shared)
parmi les modules que votre Apache utilise actuellement, l'ancien mod_php est toujours installé et vous empêche d'utilisermpm_worker
oumpm_event
.la source
sudo a2dismod
ensuite d'appuyer deux fois sur le caractère de tabulation pour voir une liste des mods qui peuvent être désactivés. Si vous voyezphp5
diable.Pour moi, suivre pleinement le travail sur Debian:
a2dismod mpm_prefork && a2enmod mpm_event
aptitude remove libapache2-mod-php5
php_
option de votre VHost est encapsulée<IfModule mod_php5.c></IfModule>
, sinon apache ne redémarrera passervice apache2 restart
la source
Recherchez les éléments suivants dans les sections Charger les modules de votre fichier de configuration apache:
Et remplacez-le par le module suivant:
la source
a2dismod mpm_prefork && a2enmod mpm_event
. Redémarrez ensuite votre apache, et vous avez terminé.le module php5 a besoin de la préfork mpm, et pour désactiver la préfork, il faut désactiver php5.
sous debian, j'ai fait ce qui suit, en tant que root:
désactiver la préfork mpm
activez l'événement mpm, ou tout autre mpm que vous préférez. note que j'ai trouvé que l'événement mpm n'était pas recommandé pour apache 2.2 ou version antérieure
pour désactiver la charge du module php5, mais sans désinstallation.
pour tester l'exactitude globale de la configuration apache résultante. les erreurs devraient être corrigées selon la réponse de @sulther ci-dessus.
redémarrer apache
si php est toujours nécessaire, une version threadsafe doit être installée. voir: https://www.digitalocean.com/community/tutorials/how-to-configure-apache-http-with-mpm-event-and-php-fpm-on-freebsd-12-0
bonne chance
la source