Ubuntu-php-fastcgi

= PHP/FastCGI Init Script for Ubuntu systems =

This code was taken from here. Many thanks to the original author.

Save this file as [ /etc/init.d/php-fastcgi]
 * 1) ! /bin/sh
 * 2) BEGIN INIT INFO
 * 3) Provides:          php-fastcgi
 * 4) Required-Start:    $all
 * 5) Required-Stop:     $all
 * 6) Default-Start:     2 3 4 5
 * 7) Default-Stop:      0 1 6
 * 8) Short-Description: Start and stop php-cgi in external FASTCGI mode
 * 9) Description:       Start and stop php-cgi in external FASTCGI mode
 * 10) END INIT INFO


 * 1) Author: Kurt Zankl 


 * 1) Do NOT "set -e"

PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="php-cgi in external FASTCGI mode" NAME=php-fastcgi DAEMON=/usr/bin/php-cgi PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME

[ -x "$DAEMON" ] || exit 0
 * 1) Exit if the package is not installed

[ -r /etc/default/$NAME ] &&. /etc/default/$NAME
 * 1) Read configuration variable file if it is present

. /lib/init/vars.sh
 * 1) Load the VERBOSE setting and other rcS variables

. /lib/lsb/init-functions
 * 1) Define LSB log_* functions.
 * 2) Depend on lsb-base (>= 3.0-6) to ensure that this file is present.

if [ "$START" != "yes" -a "$1" != "stop" ]; then log_warning_msg "To enable $NAME, edit /etc/default/$NAME and set START=yes" exit 0 fi
 * 1) If the daemon is not enabled, give the user a warning and then exit,
 * 2) unless we are stopping the daemon

export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS DAEMON_ARGS="-q -b $FCGI_HOST:$FCGI_PORT"
 * 1) Process configuration

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



Save this file as [ /etc/default/php-fastcgi]
 * 1) Settings for php-cgi in external FASTCGI Mode
 * 1) Settings for php-cgi in external FASTCGI Mode


 * 1) Should php-fastcgi run automatically on startup? (default: no)

START=yes


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

EXEC_AS_USER=www-data


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

FCGI_HOST=127.0.0.1 FCGI_PORT=9000


 * 1) Environment variables, which are processed by PHP

PHP_FCGI_CHILDREN=4 PHP_FCGI_MAX_REQUESTS=1000