如何将Apache的MPM从Prefork切换到Event?

3
如何在Apache 2.4,Debian 8上将MPM Prefork切换到Event?我已经安装了php-7和php-fpm,但找不到完整的教程来切换MPM Prefork到Event。我尝试过这个,但是MPM Prefork仍然在运行而不是Event。
2个回答

3
我逐步执行了以下步骤:

su
export PATH=$PATH:/sbin
a2dismod php7.1
a2dismod mpm_prefork
a2enmod mpm_event
a2enmod proxy_fcgi
a2enconf php7.1-fpm
systemctl restart apache2

如果没有安装 php7.1-fpm , 您可以在执行之前使用 apt-get install php7.1-fpm 进行安装,或者您可以使用 dpkg -l {package_name} 检查是否已经安装。最后,您可以使用 apachectl -V 确认所进行的操作。

我猜那样做可以,但为什么不直接使用 sudo(更安全,也不需要路径):sudo a2dismod phpX.X mpm_prefork && sudo a2enmod mpm_event proxy proxy_fcgi && sudo a2enconf phpX.X-fpm && sudo systemctl restart apache2 <- 替换成你的 PHP 版本。参见 https://wiki.debian.org/sudo - B. Shea
@B.Shea 是的,这也是真的。我只是为了总结而写的。 - s.abbaasi
1
NP。顺便说一句,你有proxy_fcgi,但是你需要添加proxy模块,因为它是一个依赖项:请参见我最后的评论-> sudo a2enmod mpm_event proxy proxy_fcgi - 请参见https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html的依赖关系 - “此模块需要mod_proxy的服务。” - B. Shea

-1

首先,执行 a2query -M 命令来检查当前的 mpm_worker(可以是 prefork、event 或 worker)。

假设当前是 prefork,如果你想切换到 mpm_event,请前往 /etc/apache2/mods-enabled 目录并执行 ls -la 命令,会看到 mpm_prefork.conf 和 mpm_prefork.load 的符号链接。

然后将 mpm_prefork 的链接重命名为其他名称(例如 mpm_prefork2.conf 和 mpm_prefork2.load)。

要重命名,请运行以下命令:cd /etc/apache2/mods-enabled,然后执行:

mv mpm_prefork.conf mpm_prefork2.conf &

mv mpm_prefork.load mpm_prefork2.load

最后,创建新的符号链接 mpm_event.conf 和 mpm_event.load,从 /mods-available 到 /mods-enabled,如下所示:

  1. sudo ln -s /etc/apache2/mods-available/mpm_event.load /etc/apache2/mods-enabled/mpm_event.load
  2. sudo ln -s /etc/apache2/mods-available/mpm_event.conf /etc/apache2/mods-enabled/mpm_event.conf
  3. 然后重启apache。 sudo service apache2 restart

现在,执行 a2query -M 命令,它将显示 event。 您已成功将 mpm_prefork 切换到 mpm_event


4
对于Debian系统,最好不要直接修改.conf文件,而是使用a2enmoda2dismod命令。如果有潜在的配置问题,你还可以获得通知,例如模块php7.xmpm_event不兼容,因此你需要先用a2dismod禁用它,然后执行以下两个命令:
  1. sudo a2dismod mpm_prefork
  2. sudo a2enmod mpm_event
- user2658323

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接