Apache aktivieren Worker mpm

10

Ich habe FastCGI und PHP5-FPM so konfiguriert, dass sie mit Ubuntu funktionieren. Das funktioniert einwandfrei.

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

Alles , was ich an war in CentOS gefunden /etc/sysconfig/httpdnur darum HTTPD=/usr/sbin/httpd.workermachen „Arbeiter mpm“ aktiviert.

  1. Wie aktivieren wir "Worker MPM" in Ubuntu?

  2. Auch wenn ich die kompilierten Module von Apache aufliste, wird "/usr/sbin/apachectl -l"nicht aufgelistet, "prefork.c"was als Auflistung bezeichnet wird, da wir es standardmäßig verwenden. Aber wenn ich das tue "/usr/sbin/apache2 -V | grep MPM"es zeigt „Server MPM: prefork“ kann jemand dies bitte erklären?

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

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI
sravis
quelle

Antworten:

29

Nach einiger Zeit habe ich es selbst gemacht. Sie finden die folgenden Schritte.

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

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Liste der verfügbaren MPM-Module (Stellen Sie sicher, dass mpm_worker aufgelistet 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 aktivierter 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 MPM_PREFORK-Modul

a2dismod mpm_prefork

Aktivieren Sie das MPM_WORKER-Modul

a2enmod mpm_worker

Um zu überprüfen, ob Apache auf MPM WORKER ausgeführt wird

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Wenn Sie diesen Fehler nach dem Ausführen dieser Befehle erhalten:

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

Versuchen Sie, das libapache2-Paket zu entfernen:

apt-get remove libapache2-mod-php5
sravis
quelle
2
Befolgen Sie die Anweisungen, erhalten Sie jedoch Folgendes: * Neustart des Webservers apache2 [fehlgeschlagen] * Die Konfiguration von apache2 ist fehlgeschlagen. Die Ausgabe des Konfigurationstests war: AH00534: apache2: Konfigurationsfehler: Es wurde mehr als ein MPM geladen. Aktion 'configtest' fehlgeschlagen. Das Apache-Fehlerprotokoll enthält möglicherweise weitere Informationen.
Neobie
perfekt :) es funktioniert bei mir.
Chirag Jagani
Es gibt den Fehler "Apache führt ein Thread-MPM aus, aber Ihr PHP-Modul ist nicht threadsicher kompiliert. Sie müssen PHP neu kompilieren" und das Entfernen von libapache2-mod-php5 hilft auch nicht.
iCyborg
2

Apache führt ein MPM mit Thread aus, aber Ihr PHP-Modul ist nicht threadsicher kompiliert. Sie müssen PHP neu kompilieren.

Twixi
quelle
0

Wenn Sie diesen Fehler nach dem Ausführen dieser Befehle erhalten:

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

Versuchen Sie, das libapache2-Paket zu entfernen:

apt-get remove libapache2-mod-php7.0
David Van De Meer
quelle