Project

General

Profile

Actions

Fastcgi-php-starter-for-freebsd » History » Revision 1

Revision 1/14 | Next »
davojan, 2006-05-11 16:46


{{{
#!/bin/sh
  1. FreeBSD rc.d script for fastcgi+php
  2. in rc.conf
  3. fcgiphp_enable (bool): Set it to "YES" to enable fastcgi+php
  4. Default is "NO".
  5. other options see below #

. /etc/rc.subr

name="fcgiphp"
rcvar=`set_rcvar`

load_rc_config $name

: ${fcgiphp_enable="NO"}
: ${fcgiphp_user="www"}
: ${fcgiphp_group="www"}
: ${fcgiphp_children="10"}
: ${fcgiphp_port="8002"}
: ${fcgiphp_socket="/tmp/php-fastcgi.sock"}
: ${fcgiphp_env="SHELL PATH USER"}
: ${fcgiphp_max_requests="1000"}
: ${fcgiphp_addr="localhost"}

pidfile=/var/run/fcgiphp/fcgiphp.pid
procname="/usr/local/bin/php"
command_args="/usr/local/bin/spawn-fcgi 2> /dev/null -f /usr/local/bin/php -s ${fcgiphp_socket} -u ${fcgiphp_user} -g ${fcgiphp_group} -C ${fcgiphp_children} -P ${pidfile}"
start_precmd=start_precmd
stop_postcmd=stop_postcmd

start_precmd() {
PHP_FCGI_MAX_REQUESTS="${fcgiphp_max_requests}"
FCGI_WEB_SERVER_ADDRS=$fcgiphp_addr
export PHP_FCGI_MAX_REQUESTS
export FCGI_WEB_SERVER_ADDRS
allowed_env="${fcgiphp_env} PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS"
  1. copy the allowed environment variables
    E=""
    for i in $allowed_env; do
    eval "x=\$$i"
    E="$E $i=$x"
    done
    command="env - $E"
if [ -n $fcgiphp_socket ]; then
command_args="${command_args} -s ${fcgiphp_socket}"
elif [ -n "${fcgiphp_port}" ]; then
command_args="${command_args} -p ${fcgiphp_port}"
else
echo "socket or port must be specified!"
exit
fi
}

stop_postcmd() {
rm -f ${pidfile}
eval "ipcs | awk '{ if (\$5 == \"${fcgiphp_user}\") print \"ipcrm -s \"\$2}' | /bin/sh"
}

run_rc_command "$1"
}}}

Updated by davojan over 14 years ago · 1 revisions