Nginx下用PHP自带的FastCGI进程管理器(FPM)

在编译PHP的时候增加一个选项:--enable-fpm

./configure --enable-fpm --with-curl --with-gd --with-mysql --with-pdo-mysql --with-pdo-pgsql

然后make、make install,顺利的话就完成安装了。

安装完成后直接运行php-fpm,会提示:

ERROR: failed to open configuration file '/usr/local/etc/php-fpm.conf'

原来默认的配置是php-fpm.conf.default,需要复制一份改名,改名为/usr/local/etc/php-fpm.conf之后,再执行php-fpm,就可以了。

执行ps aux | grep php可以看到1个主进程、2个子进程,一共3个进程。php-fpm默认使用的端口号是9000(可以在php-fpm.conf中修改:listen = 127.0.0.1:9000)

telnet 127.0.0.1 9000会发现9000这个端口确实是打开状态,至此php-fpm已经安装完成,再在/etc/rc.local中增加下面这句:

/usr/local/sbin/php-fpm

作用是让php-fpm开机自动启动。

常用操作:

重启php-fpm:kill -USR2 `ps aux | grep php-fpm | grep master | awk '{print $2}'`

这样的写法就是先用ps aux找到php-fpm的主进程的进程ID,然后发信号告诉系统重启

确实很麻烦,我也没找到更容易的办法

接下来是nginx中的设置:

找到站点的server配置段,增加如下这一段:
server {
#.....
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

重启nginx:nginx -s reload

 评论
  为什么我的php-fpm.conf里面木有listen = 127.0.0.1:9000
 发表评论
姓   名: