使用spawn-fcgi运行php-cgi
来源:互联网 发布:网页美工基本知识 编辑:程序博客网 时间:2024/05/16 08:11
1. 下载spawn-fcgi二进制可执行程序,可以单独下载包(网上找)
ubuntu下直接用sudo apt-get install spawn-fcgi
2. 安装php
apt-get install php5-cgi php5-mysql php5-common php5-gd php5-curl php5-xcache php5-memcached php5-mcrypt php5-cli
也可以单独下载安装,注意包依赖
3. 安装nginx
apt-get install nginx
4. php启动脚本, man spawn-fcgi 查看参数意思
有两种:
1) /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 2222 -u ${user} -g ${group} -f /usr/bin/php5-cgi -C 128
指定ip地域、端口号
而对应nginx 运行php配置为:
fastcgi_pass 127.0.0.1:2222;
2) /usr/local/bin/spawn-fcgi -u ${user} -g ${group} -s /tmp/php.sock -f /usr/bin/php5-cgi -P ${pidpath} 1>/dev/null
指定sock文件、进程号。这个会很好地利于编写重启脚本。
而对应nginx 运行php配置为:
fastcgi_pass unix:/tmp/php.sock;
加3)当spawn-fcgi开启两个端口,利用nginx的upstream负载均衡php程序到不同的fcgi端口上面时,则这样设置:
nginx 负载均衡配置
upstream spawn {
# ip_hash;
server 127.0.0.1:9000 max_fails=0 fail_timeout=30s;
server 127.0.0.1:9001 max_fails=0 fail_timeout=30s;
}
而对应nginx 运行php配置为:
fastcgi_pass spaw;
附带运行php脚本:
1.
#!/bin/bash
PHP_SCRIPT="/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 2222 -u www-data -g www-data -f /usr/bin/php5-cgi -C 128"
FASTCGI_USER=www-data
RETVAL=0
case "$1" in
start)
su - $FASTCGI_USER -c "$PHP_SCRIPT"
RETVAL=$?
;;
stop)
killall -9 php5-cgi
RETVAL=$?
;;
restart)
killall -9 php5-cgi
su - $FASTCGI_USER -c "$PHP_SCRIPT"
RETVAL=$?
;;
*)
echo "Usage: php {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
2.
#! /bin/bash
pidpath="/tmp/spawn_php.pid"
user="daemon"
group="daemon"
phpcgi="/usr/local/php/bin/php-cgi"
PHP_FCGI_CHILDREN=50
PHP_FCGI_MAX_REQUESTS=50000
echo_ok ()
{
echo -ne "/033[33C ["
echo -ne "/033[32m"
echo -ne "/033[1C OK"
echo -ne "/033[39m"
echo -ne "/033[1C ]/n"
}
start_spawn()
{
env - PHP_FCGI_CHILDREN=${PHP_FCGI_CHILDREN} PHP_FCGI_MAX_REQUESTS=${PHP_FCGI_MAX_REQUESTS} /usr/local/bin/spawn-fcgi -u ${user} -g ${group} -s /tmp/php.sock -f ${phpcgi} -P ${pidpath} 1>/dev/null
echo -ne "php-cgi start successfull"
echo_ok
}
case "$1" in
start)
if [ ! -f $pidpath ]
then
start_spawn
else
pidcount=`ps -ef |grep ${phpcgi}|wc -l`
if [ "$pidcount" -gt "1" ]
then
echo -ne "php already running "
echo_ok
else
rm -f $pidpath
rm -f /tmp/php.sock
start_spawn
fi
fi
;;
stop)
pid=`cat ${pidpath} 2>/dev/null`
kill ${pid} 2>/dev/null
rm -f ${pidpath} 2>/dev/null
rm -f /tmp/php.sock 2>/dev/null
echo -ne "php-cgi stop successfull"
echo_ok
;;
restart)
pid=`cat ${pidpath} 2>/dev/null`
kill ${pid} 2>/dev/null
rm -f ${pidpath} 2>/dev/null
rm -f /tmp/php.sock 2>/dev/null
echo -ne "php-cgi stop successfull"
echo_ok
if [ ! -f $pidpath ]
then
start_spawn
else
pidcount=`ps -ef |grep ${phpcgi}|wc -l`
if [ "$pidcount" -gt "1" ]
then
echo -ne "php already running "
echo_ok
else
rm -f $pidpath
rm -f /tmp/php.sock
start_spawn
fi
fi
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit
- 使用spawn-fcgi运行php-cgi
- PHP|什么是CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI?
- (转)CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
- 追根究底,剖析MFC六大关键技术(第一部分)
- Eclipse快捷键大全
- 业界资讯:adobe air 2.7 和flash player10.3 放出
- GCC's bacl-end & assemble emission (6)
- 追根究底,MFC六大关键技术之剖析(第二部分)
- 使用spawn-fcgi运行php-cgi
- winform中datagridview显示合计行
- 追根究底,剖析MFC六大关键技术(第三部分)
- 追根究底,剖析MFC六大关键技术(第四部分)
- 网络编程 一
- Windows XP 和RHEL5 双系统安装记一
- 追根究底,MFC 六大关键技术剖析(第五六部分)
- (转)恋爱的真谛
- memcpy() -- 拷贝内存内容