Apache 配置为 mpm_worker - 为什么它仍然显示为 mpm_prefork?

Apache 配置为 mpm_worker - 为什么它仍然显示为 mpm_prefork?

我认为我已经在 Ubuntu 13.10 下正确配置了 Apache MPM 作为 worker,包括 PHP-FPM 和 FCGI,并且禁用了 mod_php。当我运行顶部我可以清楚地看到多个 Apache(~2-3 MB)和 php(~ 25-30 MB)进程正在运行,并且随着用户/请求的增加而增加。

现在,让我感到困惑的是,当我检查a2query-M返回:

prefork

或者apachectl -V

Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)

这样可以吗?还是我在设置过程中遗漏了什么?

答案1

由于问题中缺少信息,因此这里只能进行一些猜测。假设 Apache 2.4 从 Ubuntu 存储库安装,其中标准 MPM 包含在安装中,因此您似乎只需要从 切换preforkworker注意:您只能在选择单个 MPM 的情况下启动 Apache,即您必须“dismod”当前 MPM,然后“enmod”所需的 MPM

如果是,则使用以下命令进行切换:

 a2dismod mpm_prefork
 a2enmod mpm_worker
 service apache2 restart

要在运行命令之前检查配置service apache2 restart,您可以使用apache2ctl -t

还请注意:如果您未以 root 身份登录(您不应该这样做!),您可能需要在每个命令行前面加上以sudo拥有足够的权限。

相关内容