Apache aktivieren worker mpm

8

Ich habe FastCGI und PHP5-FPM konfiguriert, um auf Ubuntu zu arbeiten, was gut funktioniert.

Aber ich habe "apache2 worker mpm" -Modul installiert und wollte "prefork mpm" konfigurieren und ersetzen, was standardmäßig in apache2 ist.

Alles, was ich gefunden habe, war in CentOS bei /etc/sysconfig/httpd , wenn Sie HTTPD=/usr/sbin/httpd.worker setzen, wird "worker mpm" aktiviert.

  1. Wie aktivieren wir "worker mpm" in Ubuntu?

  2. Auch wenn ich die kompilierten Module von Apache "/usr/sbin/apachectl -l" auflisten listet sie nicht "prefork.c" auf, das als Auflistung angezeigt wird, da wir es standardmäßig verwenden. Aber wenn ich "/usr/sbin/apache2 -V | grep MPM" mache, zeigt es "Server MPM: prefork" kann jemand das bitte erklären?

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

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI
    
sravis 16.09.2014, 17:13

3 Antworten

23

Nach einiger Zeit der Arbeit habe ich es selbst gemacht. Sie können die folgenden Schritte finden.

Überprüfen Sie, welcher MPM-Apache gerade ausgeführt wird:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Liste verfügbarer MPM-Module (Stellen Sie sicher, dass mpm_worker aufgeführt ist)

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 aktivierte MPM-Module (Wenn mpm_worker nicht aktiviert ist, sollten wir es aktivieren und das Modul mpm_prefork deaktivieren)

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

Deaktivieren Sie das Modul MPM_PREFORK

a2dismod mpm_prefork

Aktivieren Sie das Modul MPM_WORKER

a2enmod mpm_worker

Um zu überprüfen, ob Apache auf MPM WORKER läuft

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Wenn Sie nach der Ausführung dieser Befehle folgenden Fehler erhalten:

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

Versuchen Sie, libapache2-Paket zu entfernen:

apt-get remove libapache2-mod-php5
    
sravis 17.09.2014, 08:33
2

Apache führt einen Thread-MPM aus, aber Ihr PHP-Modul ist nicht kompiliert, um threadsafe zu sein. Sie müssen PHP neu kompilieren.

    
twixi 14.10.2015 17:07
0

Wenn Sie nach der Ausführung dieser Befehle folgenden Fehler erhalten:

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

Versuchen Sie, libapache2-Paket zu entfernen:

apt-get remove libapache2-mod-php7.0
    
David Van De Meer 03.03.2017 03:43

Tags und Links