Bind

無法將 spawn-fcgi 綁定到地址

  • October 23, 2019

按照一些很好的說明,我幾乎完成了將 PHP 設置為在 nginx 上執行。但是,每次我嘗試啟動 spawn-fcgi 時都會收到一條錯誤消息

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

我的 /etc/init.d/php-fastcgi 啟動腳本是:

#!/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

載入 /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

需要注意的一件事是,我以使用者“demo”的身份執行 PHP cgi,這是我的帳戶。

更新

我手動執行了 spawn-fcgi 命令並且它起作用了。奇怪的…

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

9000 埠上還有其他東西在監聽嗎?

netstat -tnap | grep LIST | grep 9000

另一方面,我建議使用 strace 啟動腳本來檢查系統呼叫:

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

然後看一下文件strace.output,尤其是最後幾行。strace總是好的“開導”方式。

希望這可以幫助。

引用自:https://serverfault.com/questions/144623