Nginx 使用 spawn-fcgi 來取代 php5-cgi

spawn-fcgi 是 CGI process 的管理程式, 用來管理 PHP 的 CGI, 以避免 php5-cgi 掛掉 或 Process 不夠用的問題.

註: 雖說如此, 但是實際測試的結果, 在 Ubuntu Linux 10.04 的 spawn-fcgi 不太穩定, 常常掛掉, 反而直接跑 php5-cgi 都沒掛過, 在此只是做個紀錄, 要用的話, 建議要跑跑壓力測試.

spawn 相關參數

  • spawn 相關參數

    • -f <fcgiapp> filename of the fcgi-application
    • -a <addr>    bind to ip address
    • -p <port>    bind to tcp-port
    • -s <path>    bind to unix-domain socket
    • -C <childs>  (PHP only) numbers of childs to spawn (default 5)
    • -P <path>    name of PID-file for spawed process
    • -n           no fork (for daemontools)
    • (root only)
    • -c <dir>     chroot to directory
    • -u <user>    change to user-id
    • -g <group>   change to group-id

spawn-fcgi 的安裝、設定步驟

  • apt-get install spawn-fcgi # debian stable 需要 apt-get install lighttpd 並 update-rc.d -f lighttpd remove (不要於開機啟動 lighttpd)
  • vim /usr/bin/php-fastcgi

    #!/bin/sh
    /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -f /usr/bin/php5-cgi

  • chmod +x /usr/bin/php-fastcgi
  • vim /etc/init.d/php-fcgi

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

  • chmod 755 /etc/init.d/php-fcgi
  • /etc/init.d/php-fcgi start
  • update-rc.d php-fcgi defaults

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈Nginx 使用 spawn-fcgi 來取代 php5-cgi〉中有 4 則留言

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料