1. 程式人生 > >將php5-fcgi加入自啟動

將php5-fcgi加入自啟動

2010-09-28

周海漢 2010.9.28

在個人開發中,php fastcgi可以手工啟動。但伺服器中必須自啟動。 編寫指令碼,將其放到init.d中。

[email protected]:~$ cat /etc/init.d/php-fastcgi
#!/bin/bash

#php-fastcgi
#zhouhh
#2010.9.28

case "$1" in
	start)
		spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi
	;;
	stop)
		killall -9 php5-cgi
	;;
	restart)
		killall -9 php5-cgi
		spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi
	;;

esac

或者用start-stop-daemon. 下面的指令碼參考http://tomasz.sterna.tv/2009/04/php-fastcgi-with-nginx-on-ubuntu/ fastcgi的兩個引數PHP_FCGI_CHILDREN, PHP_FCGI_MAX_REQUESTS,前者表示啟動多少子程序,後者表示每個程序處理的最大請求。這是fastcgi的兩個重要引數。

#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=15
PHP_FCGI_MAX_REQUESTS=1000

PHP_CGI=/usr/bin/php-cgi
PHP_CGI_NAME
=`basename $PHP_CGI` PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS$PHP_CGI -b $BIND" RETVAL=0 start() { echo -n "Starting PHP FastCGI: " start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env --
$PHP_CGI_ARGS RETVAL=$? echo "$PHP_CGI_NAME." } stop() { echo -n "Stopping PHP FastCGI: " killall -q -w -u $USER $PHP_CGI RETVAL=$? echo "$PHP_CGI_NAME." } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: php-fastcgi {start|stop|restart}" exit 1 ;; esac exit $RETVAL

將這兩個指令碼之一存為php-fastcgi. 修改為可執行許可權, 然後加入自啟動:

update-rc.d php-fastcgi default

這樣系統重啟後,依然可以通過nginx提供php的web服務。

如非註明轉載, 均為原創. 本站遵循知識共享CC協議,轉載請註明來源