Я обновился до 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, конечно)
sudo service apache2 restart
Это сработало для меня.
Сначала проверьте, установлен ли этот пакет:
Если он у вас есть, просто удалите его:
источник
Вы можете установить несколько способов Apache для параллельного взаимодействия с PHP. Может быть, у вас (все еще) установлен старый mod_php, в дополнение к fastcgi / php-fpm.
Вы можете увидеть, какие модули ваш Apache загрузил во время выполнения с
При необходимости используйте
sudo
для получения привилегий root. Если вы видитеphp5_module (shared)
среди модулей, которые ваш Apache использует в настоящее время, старый mod_php все еще установлен и не позволяет использоватьmpm_worker
илиmpm_event
.источник
sudo a2dismod
дважды нажать на символ табуляции, чтобы увидеть список модов, которые можно отключить. Если вы видитеphp5
этоДля меня следующие полностью работают на Debian:
a2dismod mpm_prefork && a2enmod mpm_event
aptitude remove libapache2-mod-php5
php_
опция в вашем VHost<IfModule mod_php5.c></IfModule>
, иначе apache не будет перезапущенservice apache2 restart
источник
Ищите следующее в разделах «Загрузка модулей» вашего конфигурационного файла apache:
И замените его следующим модулем:
источник
a2dismod mpm_prefork && a2enmod mpm_event
. Затем перезапустите ваш Apache, и все готово.модуль php5 нуждается в prefork mpm, а чтобы отключить prefork, нужно отключить php5.
под debian я сделал от имени root следующее:
отключить prefork mpm
включите событие mpm, или любой другой mpm, который вы предпочитаете. заметьте, я обнаружил, что mpm не рекомендуется для apache 2.2 или более ранней версии.
отключить загрузку модуля php5, но без деинсталляции.
проверить общую правильность полученного конфига apache. Ошибки должны быть справились с в соответствии с ответом на @sulther выше.
перезапустить Apache
в случае, если php все еще необходим, должна быть установлена поточно-безопасная версия. см .: https://www.digitalocean.com/community/tutorials/how-to-configure-apache-http-with-mpm-event-and-php-fpm-on-freebsd-12-0
удачи
источник