ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: spawn-fcgi child exited



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

-- 
Best regards, Andrey Y. Ostanovsky
St. Petersburg



 




Copyright © Lexa Software, 1996-2009.