当前位置: 首页>>技术教程>>正文


如何使用线程安全的 PHP 在 Ubuntu 14.04 上启用事件 MPM Apache 2.4?

, , ,

问题描述

我升级到 Ubuntu Server 14.04,期望默认的 apache 安装会使用新的事件 MPM,但我找到了旧的 memory-eating prefork。

我已经在 Arch Linux 中成功设置了事件 MPM,但在 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)

最佳答案

要禁用 event MPM ,您可以执行 sudo a2dismod mpm_event ,然后启用 prefork ,您应该执行 sudo a2enmod mpm_prefork

最后重启apache:

sudo service apache2 restart

次佳答案

这对我有用。

首先检查你是否安装了这个包:

dpkg -l | grep libapache2-mod-php5

如果你有它,只需将其删除:

apt-get remove libapache2-mod-php5

第三种答案

您可以安装多种方式让 Apache 与 PHP 并行通信。也许你(仍然)安装了旧的 mod_php,除了 fastcgi/php-fpm。

你可以看到你的 Apache 在运行时加载了哪些模块

apache2ctl -M

如果需要,请使用 sudo 获取 root 权限。如果您在 Apache 当前使用的模块中看到 php5_module (shared) ,则旧的 mod_php 仍然安装并阻止您使用 mpm_workermpm_event

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12365.html,未经允许,请勿转载。