【问题标题】:Switching from prefork MPM to worker MPM + php-fpm on ubuntu在 ubuntu 上从 prefork MPM 切换到 worker MPM + php-fpm
【发布时间】:2013-06-21 20:25:05
【问题描述】:

我找到的所有教程都是如何全新安装 worker MPM + PHP-FPM,因为我的 wordpress 博客已经使用 prefork MPM 启动并运行,如果我在模拟安装过程中出错,请纠正我:

我在 ubuntu 上,根据一些教程,以下几行可以解决所有问题:

apt-get install apache2-mpm-worker libapache2-mod-fastcgi php5-fpm php5-gd
a2enmod actions fastcgi alias

然后你在/etc/apache2/conf.d/php5-fpm.conf中设置配置:

<IfModule mod_fastcgi.c>
                AddHandler php5-fcgi .php
                Action php5-fcgi /php5-fcgi
                Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
                FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
</IfModule>

做完这些,重启:

service apache2 restart && service php5-fpm restart

问题:

1) 对于以前使用 prefork MPM 运行的站点,是否会导致整个过程出现停机时间?

2) 是否必须更改任何已经存在的配置文件,例如 php 或 mysql 或 apache2(它们会在切换后立即生效而无需您做任何事情)?

3)我已经启动并运行了apc,切换后是否需要重新安装/重新配置?

4) 如何确定 apache2 是否按预期工作在 worker MPM 模式下?

非常感谢!

【问题讨论】:

  • 我也在做同样的事情。你介意我问你是这样做的吗?它是否无缝运行或有问题?
  • @StephenBaugh:如果我没记错的话,只有一两分钟的停机时间,因为prefork MPMworker MPM 不能同时存在,这意味着一旦apt-get install apache2-mpm-worker 启动旧的prefork MPM apache服务器将立即停止并首先开始卸载,在您从 apt-get ... 安装所有内容并正确设置配置后,service apache2 restart &amp;&amp; service php5-fpm restart 应该让服务器在 worker MPM 模式下恢复工作。
  • 谢谢谢恩。我真的很感谢你抽出时间来回复。我们在 AWS 上,所以我将启动一个实例并在开发环境中尝试它。很高兴知道这是您遇到的唯一问题。
  • 作为旁注,您可以使用 nginx 来避免停机(例如 nginx 重新加载),它也适用于 php-fpm。

标签: apache2 php


【解决方案1】:
  1. 是的,它至少要替换运行的 httpd 进程。您肯定想先在开发设置上对此进行测试。配置文件很容易出错,需要一段时间才能弄清楚。

  2. php、mysql 没有变化。是的,对 apache httpd.conf 进行了更改以放入工作配置 - 它们与 prefork 设置非常不同。您需要自己在 httpd.conf 中进行这些更改。

  3. 不,因为这是一个 php 模块,所以只要 php 运行它就可以工作。也就是说,它将为 php-fpm 中的每个池运行一个副本,因此如果您有多个域,您可以将它们分组到一个池中进行共享......但如果这样做,请注意安全问题。

  4. httpd -V 显示“服务器 mpm”

祝你好运!

【讨论】:

  • fyi,新的 php zenopcache(用于 php 5.4+)确实在 php-fpm 池之间共享缓存。
猜你喜欢
  • 2013-04-08
  • 2012-01-11
  • 2012-12-02
  • 2018-02-25
  • 2017-09-13
  • 2016-06-20
  • 2013-11-16
  • 1970-01-01
  • 2016-08-08
相关资源
最近更新 更多