要不要fast-cgi

什麼是FastCGI?


    PHP的FastCGI使你的所有php應用軟件通過mod_fastci運行,而不是mod_phpsusexec。FastCGI應用速度很快 是因爲他們持久穩定。不必對每一個請求都啓動和初始化。這使得應用程序的開發成爲可能,否則在CGI範例是不切實際的(例如一個大型的腳本,或者一個需要 連接單個或多個數據庫的應用)。

    1. FastCGI 像是一個常駐 (long-live) 型的 CGI,它可以一直執行着,只要激活後,不會每次都要花費時間去 fork 一次 (這是 CGI 最爲人詬病的 fork-and-execute 模式)。

    2. FastCGI 可在任何平臺上使用,Netscape Enterprise 及 IIS 都有 FastCGI 的模塊可供使用,阿帕契 (Apache,以及利用 Apache 衍生出做的服務器) 上也有 mod_fastcgi 可用。

    3. FastCGI 支持 C/C++、Java、PHP、Python、Ruby、Perl,Tcl 等程序語言。

    4. FastCGI 的應用程序亦兼容於 CGI。即 FastCGI 的應用程序也可以當成 CGI 來執行。

    5. 現有的 CGI 程序要改寫成 FastCGI 非常簡單,最少可能只需要多加入三行程序代碼。

    6. FastCGI 的偵錯方式與 CGI 大同小異,只要帶入程序所需的環境變量及參數,即可在命令列模式執行或偵錯。

    7. FastCGI 應用程序的寫作方式與 CGI 類似,除了幾項原則要特別注意外,FastCGI 的寫作方式跟 CGI 幾乎一樣,與學習 Web Server API 比較起來, FastCGI 簡單多了。

    8. FastCGI 支授分佈式運算 (distributed computing),即 FastCGI 程序可以在網站服務器以外的主機上執行並且接受來自其它網站服務器來的請求。


    好處


    1. PHP腳本運行速度更快(3到30倍)。PHP解釋程序被載入內存而不用每次需要時從存儲器讀取,極大的提升了依靠腳本運行的站點的性能。

    2. 需要使用更少的系統資源。由於服務器不用每次需要時都載入PHP解釋程序,你可以將站點的傳輸速度提升很高而不必增加cpu負擔。因爲dll文件不再每次都載入了,那麼數據庫的持久連接也將可以起到它設計初的效果。

    3. 不需要對現有的代碼作任何改變。


    潛在問題


    1. 對所有的子目錄(/home/USERNAME/public_html/php.ini)你只有一個可用的php.ini文件。這是優化網站代碼所必需 的。如果你需要多個php.ini文件以適應不同的腳本需要,你可以在任何子目錄禁用PHP的快速CGI,而其餘的地方則繼續有效。

    2. 你對PHP環境做的任何升級(如php.ini文件的改變)都有幾分鐘的延遲。這是因爲爲了更快的速度 你的php.ini文件已經被載入內存,而不是每次需要時再從存儲器重新讀取。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章