J'ai configuré FastCGI et PHP5-FPM pour fonctionner sur Ubuntu, ce qui fonctionne bien.
Mais j’ai installé le module "Apache2 worker mpm" et je voulais configurer et remplacer "prefork mpm", qui est la valeur par défaut dans Apache2.
Tout ce que j'ai trouvé était dans CentOS à /etc/sysconfig/httpd
, il suffit de mettre HTTPD=/usr/sbin/httpd.worker
pour que "worker mpm" soit activé.
Comment activer "worker mpm" dans Ubuntu?
Aussi, quand je liste les modules compilés d'Apache "/usr/sbin/apachectl -l"
, il ne listera pas "prefork.c"
qui disait être listés puisque nous l'utilisons par défaut. Mais quand je fais "/usr/sbin/Apache2 -V | grep MPM"
il montre "Server MPM: prefork" quelqu'un peut-il expliquer cela s'il vous plaît?
$/usr/sbin/Apache2 -V | grep MPM
Server MPM: prefork
phpinfo ();
Server API : FPM/FastCGI
Après un certain temps de travail, je l'ai fait moi-même. Vous pouvez trouver les étapes ci-dessous.
Vérifiez quel MPM Apache est en cours d'exécution:
apachectl -V | grep -i mpm
Result:
Server MPM: prefork
Liste des modules MPM disponibles (assurez-vous que mpm_worker est répertorié)
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
Liste des modules MPM activés (si mpm_worker n'est pas activé, nous devrions l'activer et désactiver le module 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
Désactiver le module MPM_PREFORK
a2dismod mpm_prefork
Activer le module MPM_WORKER
a2enmod mpm_worker
Pour vérifier si Apache est en cours d'exécution sur MPM WORKER
apachectl -V | grep -i mpm
Result:
Server MPM: worker
Si vous obtenez cette erreur après avoir exécuté ces commandes:
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP
Essayez de supprimer le paquet libapache2:
apt-get remove libapache2-mod-php5
Apache exécute un MPM threadé, mais votre module PHP n'est pas compilé pour être threadsafe. Vous devez recompiler PHP.
Si vous obtenez cette erreur après avoir exécuté ces commandes:
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP
Essayez de supprimer le paquet libapache2:
apt-get remove libapache2-mod-php7.0