it-swarm.com.de

Wie aktiviere ich Event MPM Apache 2.4 unter Ubuntu 14.04 mit threadsicherem PHP?

Ich habe ein Upgrade auf Ubuntu Server 14.04 durchgeführt, in der Erwartung, dass die Standard-Apache-Installation das neue Ereignis-MPM verwenden würde, aber stattdessen finde ich den alten speicherfressenden Prefork.

Ich habe Event MPM in Arch Linux erfolgreich eingerichtet, aber ich kann dies unter Ubuntu nicht tun. Ich bekomme immer:

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

Ich habe bereits php-fpm installiert und Apache2 für die Verwendung konfiguriert, aber da die Konfigurationsdateien für Apache2 unter Ubuntu unterschiedlich sind, bin ich mir nicht ganz sicher, ob ich es am richtigen Ort mache.

Irgendeine Idee, wie man den Thread PHP sicher macht, damit ich Apache2 event-mpm verwenden kann? (natürlich ohne PHP manuell neu kompilieren zu müssen)

23
Towerman

Um event MPM zu deaktivieren, können Sie Sudo a2dismod mpm_event ausführen, und um prefork zu aktivieren, müssen Sie Sudo a2enmod mpm_prefork ausführen.

Zum Schluss starte Apache neu:

Sudo service Apache2 restart
37
Mehraban

Das hat bei mir funktioniert.

Überprüfen Sie zuerst, ob Sie dieses Paket installiert haben:

dpkg -l | grep libapache2-mod-php5

Wenn Sie es haben, entfernen Sie es einfach:

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

Sie können mehrere Möglichkeiten für Apache installieren, um parallel mit PHP zu kommunizieren. Vielleicht hast du (noch) das alte mod_php installiert, zusätzlich zu fastcgi/php-fpm.

Sie können sehen, mit welchen Modulen Ihr Apache zur Laufzeit geladen hat

Apache2ctl -M

Verwenden Sie bei Bedarf Sudo, um Root-Berechtigungen abzurufen. Wenn Sie unter den Modulen, die Ihr Apache derzeit verwendet, php5_module (shared) sehen, ist das alte mod_php weiterhin installiert und blockiert die Verwendung von mpm_worker oder mpm_event.

6

Für mich ist folgende Arbeit vollständig auf Debian:

  1. Prefork deaktivieren, Event aktivieren: a2dismod mpm_prefork && a2enmod mpm_event
  2. entferne mod-php5: aptitude remove libapache2-mod-php5
  3. Beachten Sie, dass in Ihrem VHost jede Option php_ durch <IfModule mod_php5.c></IfModule> gekapselt ist, andernfalls wird Apache nicht neu gestartet
  4. mach service Apache2 restart
2
suther

Suchen Sie in den Abschnitten zum Laden von Modulen in Ihrer Apache-Konfigurationsdatei nach den folgenden Informationen:

LoadModule mpm_event_module modules/mod_mpm_event.so

Und ersetzen Sie es durch das folgende Modul:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so