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

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix 並標籤為 。將永久鏈結加入書籤。

Nginx 使用 spawn-fcgi 來取代 php5-cgi 有 4 則回應

  1. 小毛球 說道:

    我们在centos上spawn-fcgi跑的挺好的;)

  2. Tsung 說道:

    嗯嗯, 感謝您提供的資訊. 🙂

  3. jnlin 說道:

    也可以試試看 php-fpm XD

  4. Tsung 說道:

    嗯嗯, Ubuntu 10.10 後, 就是直接用 php-fpm 了.
    感謝指點. Orz..

發表迴響