# Fastcgi problem

**URL:** <https://www.ruby-forum.com/t/fastcgi-problem/215256>\
**Category:** NGINX\
**Created:** [December 28, 2011, 5:30pm UTC](https://www.ruby-forum.com/t/fastcgi-problem/215256 "2011-12-28T17:30:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [December 28, 2011, 5:30pm UTC](https://www.ruby-forum.com/t/fastcgi-problem/215256/1 "2011-12-28T17:30:38Z")

</div>

Hi All!

I have got a problem with my fastcgi backend.  
A have a fastcgi server listening on a TCP docket (also tried unix  
socket as well).  
The fastcgi server randomly dies.  
There is nothing in the nginx error log, nor in the php error log, nor  
in syslog.

How, where can i find debugging information about fastcgi backend?

thanks!

* * *

# 

# Settings for php-cgi in external FASTCGI Mode

# 

# Should php-fastcgi run automatically on startup? (default: no)

START=yes

# Which user runs PHP? (default: www-data)

EXEC\_AS\_USER=informatik\_php  
EXEC\_AS\_GROUP=informatik\_php

# Host and TCP port for FASTCGI-Listener (default: localhost:9000)

FCGI\_HOST=127.0.0.1  
FCGI\_PORT=6001

# Environment variables, which are processed by PHP

FCGI\_CHILDREN=4  
FCGI\_MAX\_REQUESTS=50  
FCGI\_SOCKET=/var/run/fastcgi/informatik.hu

CONFIG\_DIR=/home/informatik.hu

* * *

#! /bin/sh

### BEGIN INIT INFO

# Provides: php-fastcgi-informatik

# Required-Start: $all

# Required-Stop: $all

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: Start and stop php-cgi in external FASTCGI mode

# Description: Start and stop php-cgi in external FASTCGI mode

### END INIT INFO

# Author: Kurt Z. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

# Do NOT “set -e”

PATH=/sbin:/usr/sbin:/bin:/usr/bin  
DESC=“php-cgi in external FASTCGI mode”  
NAME=php-fastcgi-informatik  
DAEMON=/usr/bin/php-cgi  
PIDFILE=/var/run/$NAME.pid  
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed

[-x “$DAEMON”] || exit 0

# Read configuration variable file if it is present

[-r /etc/default/$NAME] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables

. /lib/init/vars.sh

# Define LSB log\_\* functions.

# Depend on lsb-base (\>= 3.0-6) to ensure that this file is present.

. /lib/lsb/init-functions

# If the daemon is not enabled, give the user a warning and then exit,

# unless we are stopping the daemon

if [“$START” != “yes” -a “$1” != “stop”]; then  
log\_warning\_msg “To enable $NAME, edit /etc/default/$NAME and  
set START=yes”  
exit 0  
fi

# Process configuration

export FCGI\_CHILDREN FCGI\_MAX\_REQUESTS  
DAEMON\_ARGS=“-q -b $FCGI\_SOCKET -c $CONFIG\_DIR”

do\_start()  
{  
# Return  
# 0 if daemon has been started  
# 1 if daemon was already running  
# 2 if daemon could not be started  
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec  
$DAEMON --test \> /dev/null   
|| return 1  
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec  
$DAEMON   
–background --make-pidfile --chuid  
$EXEC\_AS\_USER:$EXEC\_AS\_GROUP --startas $DAEMON –   
$DAEMON\_ARGS   
|| return 2  
}

do\_stop()  
{  
# Return  
# 0 if daemon has been stopped  
# 1 if daemon was already stopped  
# 2 if daemon could not be stopped  
# other if a failure occurred  
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5  
–pidfile $PIDFILE \> /dev/null # --name $DAEMON  
RETVAL=“$?”  
[“$RETVAL” = 2] && return 2  
# Wait for children to finish too if this is a daemon that  
forks  
# and if the daemon is only ever run from this initscript.  
# If the above conditions are not satisfied then add some other  
code  
# that waits for the process to drop all resources that could  
be  
# needed by services started subsequently. A last resort is to  
# sleep for some time.  
# start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5  
–exec $DAEMON  
[“$?” = 2] && return 2  
# Many daemons don’'t delete their pidfiles when they exit.  
rm -f $PIDFILE  
return “$RETVAL”  
}

case “$1” in  
start)  
[“$VERBOSE” != no] && log\_daemon\_msg “Starting $DESC” “$NAME”  
do\_start  
case “$?” in  
0|1) [“$VERBOSE” != no] && log\_end\_msg 0 ;;  
2) [“$VERBOSE” != no] && log\_end\_msg 1 ;;  
esac  
;;  
stop)  
[“$VERBOSE” != no] && log\_daemon\_msg “Stopping $DESC” “$NAME”  
do\_stop  
case “$?” in  
0|1) [“$VERBOSE” != no] && log\_end\_msg 0 ;;  
2) [“$VERBOSE” != no] && log\_end\_msg 1 ;;  
esac  
;;  
restart|force-reload)  
log\_daemon\_msg “Restarting $DESC” “$NAME”  
do\_stop  
case “$?” in  
0|1)  
do\_start  
case “$?” in  
0) log\_end\_msg 0 ;;  
1) log\_end\_msg 1 ;; # Old process is still  
running  
\*) log\_end\_msg 1 ;; # Failed to start  
esac  
;;  
\*)  
# Failed to stop  
log\_end\_msg 1  
;;  
esac  
;;  
\*)  
echo “Usage: $SCRIPTNAME {start|stop|restart|force-reload}” \>&2  
exit 3  
;;  
esac

:
