php fastcgi进程启动,php fastcgi 启动脚本

杨柏
2023-12-01

php fastcgi 启动脚本

以FASTCGI模式启动PHP,通过此脚本,可以以守护进程模式启动PHP的FASTCGI模式。

启动脚本 /home/hliang/fcgi-php:

[cc lang=”php”]#! /bin/sh

### BEGIN INIT INFO

# Provides: php-fastcgi

# Required-Start: $all

# Required-Stop: $all

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: Start and stop php-cgi in external FASTCGI mode

# Description: Start and stop php-cgi in external FASTCGI mode

### END INIT INFO

# Author: Kurt Zankl

# Do NOT “set -e”

PATH=/sbin:/usr/sbin:/bin:/usr/bin

DESC=”php-cgi in external FASTCGI mode”

NAME=fcgi-php

DAEMON=/usr/local/php/bin/php-cgi

PIDFILE=/var/run/$NAME.pid

SCRIPTNAME=/home/hliang/app/shell/$NAME

PHP_CONFIG_FILE=/usr/local/php/lib/php.ini

# Exit if the package is not installed

[ -x “$DAEMON” ] || exit 0

# Read configuration variable file if it is present

[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables

. /lib/init/vars.sh

# Define LSB log_* functions.

# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.

. /lib/lsb/init-functions

# If the daemon is not enabled, give the user a warning and then exit,

# unless we are stopping the daemon

if [ “$START” != “yes” -a “$1” != “stop” ]; then

log_warning_msg “To enable $NAME, edit /etc/default/$NAME and set START=yes”

exit 0

fi

# Process configuration

export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS

DAEMON_ARGS=”-q -b $FCGI_HOST:$FCGI_PORT -c $PHP_CONFIG_FILE”

do_start()

{

# Return

# 0 if daemon has been started

# 1 if daemon was already running

# 2 if daemon could not be started

start-stop-daemon –start –quiet –pidfile $PIDFILE –exec $DAEMON –test > /dev/null || return 1

start-stop-daemon –start –quiet –pidfile $PIDFILE –exec $DAEMON –background –make-pidfile –chuid $EXEC_AS_USER –startas $DAEMON — $DAEMON_ARGS || return 2

}

do_stop()

{

# Return

# 0 if daemon has been stopped

# 1 if daemon was already stopped

# 2 if daemon could not be stopped

# other if a failure occurred

start-stop-daemon –stop –quiet –retry=TERM/30/KILL/5 –pidfile $PIDFILE > /dev/null # –name $DAEMON

RETVAL=”$?”

[ “$RETVAL” = 2 ] && return 2

# Wait for children to finish too if this is a daemon that forks

# and if the daemon is only ever run from this initscript.

# If the above conditions are not satisfied then add some other code

# that waits for the process to drop all resources that could be

# needed by services started subsequently. A last resort is to

# sleep for some time.

start-stop-daemon –stop –quiet –oknodo –retry=0/30/KILL/5 –exec $DAEMON

[ “$?” = 2 ] && return 2

# Many daemons don’t delete their pidfiles when they exit.

rm -f $PIDFILE

return “$RETVAL”

}

case “$1” in

start)

[ “$VERBOSE” != no ] && log_daemon_msg “Starting $DESC” “$NAME”

do_start

case “$?” in

0|1) [ “$VERBOSE” != no ] && log_end_msg 0 ;;

2) [ “$VERBOSE” != no ] && log_end_msg 1 ;;

esac

;;

stop)

[ “$VERBOSE” != no ] && log_daemon_msg “Stopping $DESC” “$NAME”

do_stop

case “$?” in

0|1) [ “$VERBOSE” != no ] && log_end_msg 0 ;;

2) [ “$VERBOSE” != no ] && log_end_msg 1 ;;

esac

;;

restart|force-reload)

log_daemon_msg “Restarting $DESC” “$NAME”

do_stop

case “$?” in

0|1)

do_start

case “$?” in

0) log_end_msg 0 ;;

1) log_end_msg 1 ;; # Old process is still running

*) log_end_msg 1 ;; # Failed to start

esac

;;

*)

# Failed to stop

log_end_msg 1

;;

esac

;;

*)

echo “Usage: $SCRIPTNAME {start|stop|restart|force-reload}” >&2

exit 3

;;

esac[/cc]

配置文件,保存在 /etc/default/fcgi-php

[cc lang=”php”]START=yes

# Which user runs PHP? (default: www-data)

EXEC_AS_USER=www-data

# Host and TCP port for FASTCGI-Listener (default: localhost:9000)

FCGI_HOST=127.0.0.1

FCGI_PORT=9000

# Environment variables, which are processed by PHP

PHP_FCGI_CHILDREN=4

PHP_FCGI_MAX_REQUESTS=1000[/cc]

启动服务:

[cc lang=”php”]/home/hliang/fcgi-php start[/cc]

关闭服务:

[cc lang=”php”]/home/hliang/fcgi-php stop[/cc]

重启服务:

[cc lang=”php”]/home/hliang/fcgi-php restart

/home/hliang/fcgi-php force-reload[/cc]

 类似资料: