Apache 启用 worker mpm

sra*_*vis 12 server apache2 14.04

我已将 FastCGI 和 PHP5-FPM 配置为在 ubuntu 上工作,运行良好。

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

我发现的所有内容都是在 CentOS 中,/etc/sysconfig/httpd只需HTTPD=/usr/sbin/httpd.worker“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
Run Code Online (Sandbox Code Playgroud)

phpinfo();

Server API :    FPM/FastCGI
Run Code Online (Sandbox Code Playgroud)

sra*_*vis 31

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

检查当前正在运行的 MPM apache:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork
Run Code Online (Sandbox Code Playgroud)

列出可用的 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
Run Code Online (Sandbox Code Playgroud)

列出启用的 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
Run Code Online (Sandbox Code Playgroud)

禁用 MPM_PREFORK 模块

a2dismod mpm_prefork
Run Code Online (Sandbox Code Playgroud)

启用 MPM_WORKER 模块

a2enmod mpm_worker
Run Code Online (Sandbox Code Playgroud)

检查 Apache 是否在 MPM WORKER 上运行

apachectl -V | grep -i mpm

Result:
Server MPM:     worker
Run Code Online (Sandbox Code Playgroud)

如果在执行这些命令后出现此错误:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP
Run Code Online (Sandbox Code Playgroud)

尝试删除 libapache2 包:

apt-get remove libapache2-mod-php5
Run Code Online (Sandbox Code Playgroud)

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