Jak włączyć wydarzenie MPM Apache 2.4 na Ubuntu 14.04 z bezpiecznym wątkiem PHP?

21

Uaktualniłem system do wersji Ubuntu Server 14.04, spodziewając się, że domyślna instalacja Apache będzie korzystała z nowego zdarzenia MPM, ale zamiast tego znajduję stary prefekt z zapamiętywaniem pamięci.

Udało mi się skonfigurować wydarzenie MPM w Arch Linux, ale nie udało mi się tego zrobić w systemie Ubuntu. Wciąż otrzymuję:

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

Już zainstalowałem php-fpm i skonfigurowałem apache2, aby z niego korzystać, ale ponieważ pliki konfiguracyjne dla apache2 są inne w Ubuntu, nie jestem pewien czy robię to we właściwym miejscu.

Jakikolwiek pomysł, jak sprawić, by wątek PHP był bezpieczny, abym mógł korzystać z apache2 event-mpm? (bez konieczności ręcznego przekompilowania php, oczywiście)

    
zadawane Towerman 23.04.2014, 07:32
źródło

5 odpowiedzi

33

Aby wyłączyć event MPM , możesz zrobić sudo a2dismod mpm_event , a potem włączyć prefork , powinieneś zrobić sudo a2enmod mpm_prefork .

Wreszcie uruchom ponownie apache:

sudo service apache2 restart
    
odpowiedział Mehraban 16.05.2016, 10:55
źródło
11

To działało dla mnie.

Najpierw sprawdź, czy masz zainstalowany ten pakiet:

dpkg -l | grep libapache2-mod-php5

Jeśli go po prostu usuniesz:

apt-get remove libapache2-mod-php5
    
odpowiedział Carlos Mafla 03.12.2015, 03:24
źródło
6

Możesz zainstalować wiele sposobów, aby Apache mógł komunikować się z PHP równolegle. Być może masz (wciąż) stary mod_php zainstalowany, oprócz fastcgi / php-fpm.

Możesz zobaczyć, które moduły załadował twój Apache w środowisku wykonawczym

apache2ctl -M

W razie potrzeby użyj sudo , aby uzyskać uprawnienia root'a. Jeśli zobaczysz php5_module (shared) wśród modułów, których Apache aktualnie używa, stary mod_php jest nadal zainstalowany i blokuje ci korzystanie z mpm_worker lub mpm_event .

    
odpowiedział Henning Kockerbeck 25.05.2014, 16:50
źródło
1

W sekcjach Wczytaj moduły pliku konfiguracyjnego Apache znajdź następujące elementy:

LoadModule mpm_event_module modules/mod_mpm_event.so

I zamień go na następujący moduł:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    
odpowiedział Ajsti.pl - Maciej Szewczyk 16.05.2016, 10:57
źródło
0

Dla mnie po pełnej pracy nad debianem:

  1. Wyłącz prefekt, włącz wydarzenie: a2dismod mpm_prefork && a2enmod mpm_event
  2. usuń mod-php5: aptitude remove libapache2-mod-php5
  3. Pamiętaj, że masz co% opcję php_ w hermetyzacji VHost% <IfModule mod_php5.c></IfModule> , inaczej apache nie uruchomi się ponownie
  4. do service apache2 restart
odpowiedział suther 10.10.2017, 12:29
źródło

Przeczytaj inne pytania na temat tagów