On 7/24/07, Maxim Khitrov <[EMAIL PROTECTED]> wrote:
Hello,
I have this problem that I can't figure out. One of my web servers is
using a combination of lighttpd and FastCGI php to run a few sites. On
lighttpd website there is an rc script to help FreeBSD users start
FastCGI php processes automatically. I've pasted that script below.
I should say that if I run it manually as root, everything works
beautifully. As you can see, the script creates a unix socket at
/var/run/fastcgi/php.sock, and lighttpd is then able to execute php
scripts. The problem is that every time the server is rebooted, the
script does not start back up. I have to start it manually. I can't
find any log entries that would indicate a problem, so I'm not even
sure where to start looking. Below is the script that I'm trying to
run, file permissions for relevant files, and contents of my rc.conf.
Would greatly appreciate it if someone could at least tell me where to
start looking for a solution to this problem.
Thanks,
Maxim Khitrov
/etc/rc.conf:
fcgiphp_enable="YES"
/var/run/fastcgi:
-rw-r--r-- 1 www www - 5B Jul 24 17:06 php.pid
srwxr-xr-x 1 www www - 0B Jul 24 17:06 php.sock=
/usr/local/etc/rc.d:
-r-xr-xr-x 1 root wheel - 1.6K May 23 17:28 fastcgi-php*
/usr/local/etc/rc.d/fastcgi-php:
#!/bin/sh
# FreeBSD rc.d script for fastcgi+php
# in rc.conf
# fcgiphp_enable (bool): Set it to "YES" to enable fastcgi+php
# Default is "NO".
# other options see below
#
. /etc/rc.subr
name="fcgiphp"
rcvar=`set_rcvar`
load_rc_config $name
: ${fcgiphp_enable="NO"}
: ${fcgiphp_bin_path="/usr/local/bin/php-cgi"}
: ${fcgiphp_user="www"}
: ${fcgiphp_group="www"}
: ${fcgiphp_children="2"}
: ${fcgiphp_port="8002"}
: ${fcgiphp_socket="/var/run/fastcgi/php.sock"}
: ${fcgiphp_env="SHELL PATH USER"}
: ${fcgiphp_max_requests="100"}
: ${fcgiphp_addr="localhost"}
pidfile=/var/run/fastcgi/php.pid
procname="${fcgiphp_bin_path}"
command_args="/usr/local/bin/spawn-fcgi 2> /dev/null -f
${fcgiphp_bin_path} -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"
# 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"
Sorry for replying to myself, but I forgot to mention that this server
is actually running inside a jail. I have no idea if that has anything
to do with it. I also have other services being started from
/usr/local/etc/rc.d (lighttpd, mysql, and a few others), but this
fastcgi script is the only one that fails to work.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"