Как включить событие MPM Apache 2.4 на Ubuntu 14.04 с потоковым безопасным PHP?

20

Я обновился до Ubuntu Server 14.04, ожидая, что установка Apache по умолчанию будет использовать новое событие MPM, но вместо этого я нахожу старую предзадачу, хранящую память.

Я успешно настроил событие MPM в Arch Linux, но я не могу это сделать на Ubuntu. Я продолжаю получать:

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

Я уже установил php-fpm и настроил apache2, чтобы использовать его, но поскольку конфигурационные файлы для apache2 отличаются от Ubuntu, я не совсем уверен, что я делаю это в нужном месте.

Любая идея о том, как сделать поток потоков PHP безопасным, поэтому я могу использовать apache2 event-mpm? (без необходимости вручную перекомпилировать php, конечно)

    
задан Towerman 23.04.2014 в 07:32
источник

5 ответов

33

Чтобы отключить event MPM , вы можете сделать sudo a2dismod mpm_event , а затем включить prefork , вы должны сделать sudo a2enmod mpm_prefork .

Наконец, перезапустите apache:

sudo service apache2 restart
    
ответ дан Mehraban 16.05.2016 в 10:55
источник
10

Это сработало для меня.

Сначала проверьте, установлен ли этот пакет:

dpkg -l | grep libapache2-mod-php5

Если у вас есть это, просто удалите его:

apt-get remove libapache2-mod-php5
    
ответ дан Carlos Mafla 03.12.2015 в 03:24
5

Вы можете установить несколько способов взаимодействия Apache с PHP параллельно. Возможно, у вас есть (еще) старый mod_php, а также fastcgi / php-fpm.

Вы можете видеть, какие модули, которые Apache загрузил во время выполнения, с помощью

apache2ctl -M

При необходимости используйте sudo , чтобы получить привилегии root. Если вы видите php5_module (shared) среди модулей, которые использует ваш Apache, старый mod_php все еще установлен и блокирует использование mpm_worker или mpm_event .

    
ответ дан Henning Kockerbeck 25.05.2014 в 16:50
1

Найдите в разделе «Модули загрузки» конфигурационного файла apache:

LoadModule mpm_event_module modules/mod_mpm_event.so

И замените его на следующий модуль:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    
ответ дан Ajsti.pl - Maciej Szewczyk 16.05.2016 в 10:57
0

Для меня полная работа над debian:

  1. Отключить предпросмотр, включить событие: a2dismod mpm_prefork && a2enmod mpm_event
  2. удалить mod-php5: aptitude remove libapache2-mod-php5
  3. Имейте в виду, что каждый php_ Option в вашем VHost инкапсулируется <IfModule mod_php5.c></IfModule> , иначе apache не будет перезагружаться
  4. do service apache2 restart
ответ дан suther 10.10.2017 в 12:29