Kasper wrote:
./spawn-fcgi -a 127.0.0.1 -p 8888 -f /usr/lib64/php5/bin/php -C 5 -u apache -g
apache
На что постоянно получаю:
spawn-fcgi.c.211: child exited with: 0, Success
Однажды выдал pid, но ps -A - его не показывает netstat -a, открытого порта
8888 тоже не видит, в чем может быть дело?
Скорее всего - быстро отвалился.:) К сожалению, поскольку эти процессы
своих логов не пишут (не умеют?), то надо делать стороннюю диагностику,
типа запуска php -i от юзера apache с просмотром результатов вывода.
А nginx сам открывает соккет? Дело в том что я мало знаком с сетевым
взаимодействием. Спасибо.
Не, там процессы должны висеть и ждать обращений к ним.
Я использую примерно такой стартовый скрипт, вроде работает:
#!/bin/sh
#
## ABSOLUTE path to the spawn-fcgi binary
SPAWNFCGI="/usr/local/bin/spawn-fcgi"
## ABSOLUTE path to the PHP binary
FCGIPROGRAM="/usr/local/bin/php-cgi"
FCGISOCKET="/tmp/php-fcgi.sock"
#
# number of PHP children to spawn
PHP_FCGI_CHILD=5
#
# maximum number of requests a single PHP process can serve before it is
restarted
PHP_FCGI_MAX_REQUESTS=100
#
# IP addresses from which PHP should access server connections
FCGI_WEB_SERVER_ADDRS="127.0.0.1"
#
# if this script is run as root, switch to the following user
USERID=www
GROUPID=www
# copy the allowed environment variables
E="PATH="$PATH" USER="$USERID" GROUP="$GROUPID"
PHP_FCGI_MAX_REQUESTS="$PHP_FCGI_MAX_REQUESTS
################## no config below this line
if test x$PHP_FCGI_CHILD = x; then
PHP_FCGI_CHILD=5
fi
export PHP_FCGI_MAX_REQUESTS
export FCGI_WEB_SERVER_ADDRS
EX="$SPAWNFCGI -P /var/run/fcgi.pid -s $FCGISOCKET -f $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILD"
case "$1" in
start)
# clean the environment and set up a new one
env -i ${E} $EX
;;
stop)
# Case STOP
kill -TERM `cat /var/run/fcgi.pid`
rm -f $FCGISOCKET
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac