Apache启用工作者mpm


10

我已经配置FastCGI和PHP5-FPM在ubuntu上工作,这很好。

但是我安装了“ apache2 worker mpm”模块,并想配置和替换apache2中默认的“ prefork mpm”

所有我发现是在CentOS的/etc/sysconfig/httpd只是把HTTPD=/usr/sbin/httpd.worker将使“工人MPM”启用。

  1. 我们如何在Ubuntu中启用“ worker mpm”?

  2. 另外,当我列出apache的编译模块时,"/usr/sbin/apachectl -l"它不会列出"prefork.c"要列出的列表,因为默认情况下我们正在使用它。但是当我"/usr/sbin/apache2 -V | grep MPM"显示“ Server MPM:prefork”时,有人可以解释一下吗?

$ / usr / sbin / apache2 -V | grep MPM

Server MPM:     prefork

phpinfo();

Server API :    FPM/FastCGI

Answers:


29

经过一段时间的工作,我自己做了。您可以找到以下步骤。

检查当前正在运行哪个MPM apache:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

列出可用的MPM模块(确保列出了mpm_worker)

ls /etc/apache2/mods-available/mpm*

Result:
/etc/apache2/mods-available/mpm_event.conf  /etc/apache2/mods-available/mpm_prefork.conf  /etc/apache2/mods-available/mpm_worker.conf
/etc/apache2/mods-available/mpm_event.load  /etc/apache2/mods-available/mpm_prefork.load  /etc/apache2/mods-available/mpm_worker.load

列出已启用的MPM模块(如果未启用mpm_worker,则应启用它并禁用mpm_prefork模块)

ls -l /etc/apache2/mods-enabled/mpm*

Result:
/etc/apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
/etc/apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load

禁用MPM_PREFORK模块

a2dismod mpm_prefork

启用MPM_WORKER模块

a2enmod mpm_worker

检查Apache是​​否在MPM WORKER上运行

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

如果在执行以下命令后收到此错误:

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

尝试删除libapache2软件包:

apt-get remove libapache2-mod-php5

2
按照说明进行操作,但得到以下信息:*重新启动Web服务器apache2 [失败] * apache2 configtest失败。配置测试的输出为:AH00534:apache2:配置错误:加载了多个MPM。动作“ configtest”失败。Apache错误日志可能包含更多信息。
neobie

完美的:)它为我工作。
chirag jagani

出现错误“ Apache正在运行线程化的MPM,但您的PHP模块未编译为线程安全的。您需要重新编译PHP”,并且删除libapache2-mod-php5也无济于事。
iCyborg '17

2

Apache正在运行线程MPM,但是您的PHP模块未编译为线程安全的。您需要重新编译PHP。


0

如果在执行以下命令后收到此错误:

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

尝试删除libapache2软件包:

apt-get remove libapache2-mod-php7.0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.