以下均为Linux 平台配置
1. 首先假设你已经可以使 nginx + php 在 fastcgi 模式下运行 (如果不会,请参考nginx 资料)
2. 安装djb daemontools
脚本如下
mkdir -p /package
chmod 1755 /package/
cd /package/
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar xzf daemontools-0.76.tar.gz
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
cd admin/daemontools-0.76
patch -p1 < ../../daemontools-0.76.errno.patch
rm ../../daemontools-0.76.errno.patch ../../daemontools-0.76.tar.gz
./package/install
3. 配置 nginx在 daemontools下运行
脚本如下
修改nginx.conf 加入 daemon off; (在 worker_processes 前面!!)
mkdir -p /srv/nginx
vi /srv/nginx/run 内容为
#!/bin/sh
exec /usr/local/nginx/sbin/nginx
4. php fastcgi 在 daemontools 下运行 (最关键的 -n )
#! /bin/sh
exec /usr/local/lighttpd/bin/spawn-fcgi -n -a 127.0.0.1 -p 9999 -C 30 -u nobody -g nobody -f /usr/local/php/bin/php-cgi
5. 配置svscan 监控
ln -s /srv/nginx /service
ln -s /srv/phpfcgi /service
手动停止 你的 nginx 和 php-cgi 进程看看,是不是 php-cgi 和 nginx 自动启动了。呵呵
6. 学习如何手动停止 nginx 和 php-cgi
svc -d /service/nginx 停止 nginx
svc -u /service/nginx 启动 nginx
svc -d /service/phpfcgi 停止phpfcgi
svc -u /service/phpfcgi 启动phpfcgi
That’s all !
补充,php 可以打 fpm补丁后不用此方法