Apache włącza mpm pracownika

10

Skonfigurowałem FastCGI i PHP5-FPM do pracy na ubuntu, który działa dobrze.

Ale zainstalowałem moduł „apache2 worker mpm” i chciałem skonfigurować i zastąpić „prefork mpm”, który jest domyślny w apache2.

Wszystko, co znalazłem, było w CentOS po /etc/sysconfig/httpdprostu wprowadzeniu, HTTPD=/usr/sbin/httpd.workerspowoduje włączenie „robota mpm” .

  1. Jak włączyć „pracownik mpm” w Ubuntu?

  2. Również kiedy wymieniam skompilowane moduły apache, "/usr/sbin/apachectl -l"nie będzie to lista, "prefork.c"która mówi, że jest na liście, ponieważ domyślnie używamy jej. Ale kiedy "/usr/sbin/apache2 -V | grep MPM"to zrobię , pokazuje „Server MPM: prefork”. Czy ktoś może to wyjaśnić?

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

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI
sravis
źródło

Odpowiedzi:

29

Po pewnym czasie pracy sam to zrobiłem. Poniżej znajdziesz kroki.

Sprawdź, który apache MPM jest obecnie uruchomiony:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

Lista dostępnych modułów MPM (Upewnij się, że mpm_worker jest na liście)

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

List Enabled MPM Modules (Jeśli mpm_worker nie jest włączony, powinniśmy go włączyć i wyłączyć moduł 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

Wyłącz moduł MPM_PREFORK

a2dismod mpm_prefork

Włącz moduł MPM_WORKER

a2enmod mpm_worker

Aby sprawdzić, czy Apache działa na MPM WORKER

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

Jeśli pojawi się ten błąd po wykonaniu tych poleceń:

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

Spróbuj usunąć pakiet libapache2:

apt-get remove libapache2-mod-php5
sravis
źródło
2
Postępował zgodnie z instrukcją, ale otrzymywał: * Ponowne uruchomienie serwera WWW apache2 [błąd] * Test konfiguracji apache2 nie powiódł się. Wynik testu konfiguracji: AH00534: apache2: Błąd konfiguracji: Załadowano więcej niż jeden MPM. Działanie „configtest” nie powiodło się. Dziennik błędów Apache może zawierać więcej informacji.
neobie
idealnie :) działa dla mnie.
chirag jagani
Daje błąd „Apache uruchamia wątkowy MPM, ale moduł PHP nie jest skompilowany, aby był bezpieczny dla wątków. Musisz ponownie skompilować PHP” i usunięcie libapache2-mod-php5 też nie pomaga.
iCyborg,
2

Apache korzysta z wątkowego MPM, ale moduł PHP nie jest skompilowany, aby był bezpieczny dla wątków. Musisz ponownie skompilować PHP.

twixi
źródło
0

Jeśli pojawi się ten błąd po wykonaniu tych poleceń:

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

Spróbuj usunąć pakiet libapache2:

apt-get remove libapache2-mod-php7.0
David Van De Meer
źródło