PHP init script to go with nginx?
Volodymyr Kostyrko
c.kworr at gmail.com
Fri Jun 13 13:31:17 MSD 2008
Phillip B Oldham wrote:
> Hi all
>
> I'm running PHP5 & nginx on a number of servers now, and I'm really
> happy with everything... except one item which is starting to bug me.
>
> Basically, on all the servers I run PHP5 by issuing the following
> command from a shell script:
>
> sudo -u nginx sh -c 'PHP_FCGI_MAX_REQUESTS=50 PHP_FCGI_CHILDREN=4
> /usr/local/bin/php-cgi -b 10005 &'
>
> Which works fine, other than it doen't start php on boot. Its getting
> annoying because if the server reboots I have to manually start PHP.
>
> Has anyone got a happy php-fastcgi install which doesn't use spawn-fcgi?
Here are some examples. They do create named sockets per user.
Linux:
#!/bin/ash
#
# chkconfig: 234 25 75
# description: php FastCGI daemon
case $1 in
restart)
/etc/init.d/phpFcgid stop
/etc/init.d/phpFcgid start
;;
start)
users="www"
www_childs='2'
for user in ${users}; do
socketdir="/tmp/.fastcgi.${user}"
mkdir -p ${socketdir}
chown ${user}:nobody ${socketdir}
chmod 0750 ${socketdir}
eval export PHP_FCGI_CHILDREN=\${${user}_childs}
su -m ${user} -c "/opt/php5/bin/php-cgi -b
${socketdir}/socket&"
done
;;
stop) /usr/bin/pkill php-cgi ;;
esac
FreeBSD:
#!/bin/sh
# PROVIDE: phpFcgid
# REQUIRE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
name="phpFcgid"
rcvar=`set_rcvar`
load_rc_config $name
: ${phpFcgid_enable="NO"}
: ${phpFcgid_users="www"}
: ${phpFcgid_children="2"}
start_cmd=phpFcgid_start
stop_cmd=phpFcgid_stop
phpFcgid_start() {
echo "Starting $name."
export PHP_FCGI_CHILDREN=${phpFcgid_children}
for user in ${phpFcgid_users}; do
socketdir="/tmp/.fastcgi.${user}"
mkdir -p ${socketdir}
chown ${user}:www ${socketdir}
chmod 0750 ${socketdir}
su -m ${user} -c "/usr/local/bin/php-cgi -b
${socketdir}/socket&"
done
}
phpFcgid_stop() {
echo "Stopping $name."
pids=`pgrep php-cgi`
pkill php-cgi
wait_for_pids $pids
}
run_rc_command "$1"
--
Sphinx of black quartz judge my vow.
More information about the nginx
mailing list