Can’t bind spawn-fcgi to address

bindspawn-fcgi

Following some nice instructions I am almost through setting up PHP to run on nginx. However, every time I try to start spawn-fcgi I get an error message

demo@desktop:/usr/bin$ sudo /etc/init.d/php-fastcgi start
spawn-fcgi: bind failed: Cannot assign requested address

My /etc/init.d/php-fastcgi startup script is:

#!/bin/bash
PHP_SCRIPT=/usr/bin/php-fastcgi
FASTCGI_USER=demo
RETVAL=0
case "$1" in
    start)
      su - $FASTCGI_USER -c $PHP_SCRIPT
      RETVAL=$?
  ;;
    stop)
      killall -9 php5-cgi
      RETVAL=$?
  ;;
    restart)
      killall -9 php5-cgi
      su - $FASTCGI_USER -c $PHP_SCRIPT
      RETVAL=$?
  ;;
    *)
      echo "Usage: php-fastcgi {start|stop|restart}"
      exit 1
  ;;
esac
exit $RETVAL
console output

which loads /usr/bin/php-fastcgi

#!/bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u demo -f /usr/bin/php5-cgi

One thing to note is that I am running the PHP cgi as the user "demo" which is my account.

update

I manually ran the spawn-fcgi command and it worked. Strange…

sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u demo -f /usr/bin/php5-cgi

Best Answer

Is something else listening on port 9000?

netstat -tnap | grep LIST | grep 9000

On the other hand, I'd recommend to strace the start script to check the system calls:

sudo strace -f -o strace.output /etc/init.d/php-fastcgi start

Then take a look at the file strace.output, especially the last few lines. strace is always good to "enlighten" the way.

Hope this helps.