在ubuntu上从prefork MPM切换到worker MPM + php-fpm

时间:2013-06-25 06:30:05

标签: apache2 php

我找到的所有教程都是如何全新安装工人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是否按预期在工作MPM模式下工作?

非常感谢!

1 个答案:

答案 0 :(得分:5)

  1. 是的,它必须至少替换正在运行的httpd进程。你肯定想先在开发设置上测试这个。在配置文件中容易出错,需要一段时间才能搞清楚。

  2. 没有改变php,mysql。是的更改apache httpd.conf以放入工作程序配置 - 它们与prefork设置非常不同。你需要在httpd.conf中自己做这些改变。

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

  4. httpd -V显示“server mpm”

  5. 祝你好运!