Windows 下 Apache 1.3 以 FastCGI 模式運行 PHP

來源:互聯網
上載者:User

我一直以來都是以 ISAPI 模式運行 php(做為現在的主流開發語言) 的,這種方式最大的缺點就是穩定性不好,當 php(做為現在的主流開發語言) 出錯的時候,apache(Unix平台最流行的WEB伺服器平台)進程也死掉了。後來看到網上關於 php(做為現在的主流開發語言) 以 Fastcgi(現在已經不多人在用了) 模式啟動並執行介紹,其中提到的種種好處(穩定、安全、高效能)讓我決定嘗試一下。

不過事情遠不如預計的那麼順利。Google 了無數次也沒找到一篇如何在 Windows 下用 apache(Unix平台最流行的WEB伺服器平台) + Fastcgi(現在已經不多人在用了) 跑 php(做為現在的主流開發語言) 的資料,iis(微軟的WEB伺服器平台) + Fastcgi(現在已經不多人在用了) 跑 php(做為現在的主流開發語言) 的倒是不少。其中有一篇提到 Zend 公司也推薦以 Fastcgi(現在已經不多人在用了) 模式運行 php(做為現在的主流開發語言)(http://php(做為現在的主流開發語言)lens.com/php(做為現在的主流開發語言)everywhere/fastcgi(現在已經不多人在用了)-php(做為現在的主流開發語言))。

經過幾個小時的摸索,終於成功實現了 apache(Unix平台最流行的WEB伺服器平台) 1.3 + Fastcgi(現在已經不多人在用了) 跑 php(做為現在的主流開發語言)。

準備工作:
首先訪問 http://www.fastcgi(現在已經不多人在用了).com/dist/ 下載用於 apache(Unix平台最流行的WEB伺服器平台) 的 mod_fastcgi(現在已經不多人在用了)。我使用的是 mod_fastcgi(現在已經不多人在用了)-2.4.2-AP13.dll。下載後將這個檔案複製到 apache(Unix平台最流行的WEB伺服器平台) 的 modules 目錄中。

下載 php(做為現在的主流開發語言)(我使用的 php(做為現在的主流開發語言)-5.0.4),並解壓縮,根據需要修改 php(做為現在的主流開發語言).ini 檔案。注意不需要從 php(做為現在的主流開發語言) 所在目錄複寫任何檔案到 Windows 目錄中。

修改配置:
然後修改 httpd.conf 檔案,加入下面幾行:

LoadModule fastcgi(現在已經不多人在用了)_module modules/mod_fastcgi(現在已經不多人在用了)-2.4.2-AP13.dll
ScriptAlias /fcgi(現在已經不多人在用了)-php(做為現在的主流開發語言)5/ "d:/usr/local/php(做為現在的主流開發語言)-5.0.4/"
Fastcgi(現在已經不多人在用了)Server "d:/usr/local/php(做為現在的主流開發語言)-5.0.4/php(做為現在的主流開發語言)-cgi(現在已經不多人在用了).exe" -processes 3
# 說明:此處的 -processes 3 表示啟動三個 php(做為現在的主流開發語言)-cgi(現在已經不多人在用了).exe 進程,
# 關於 Fastcgi(現在已經不多人在用了)Server 的詳細參數請參考 Fastcgi(現在已經不多人在用了) 文檔。
AddType application/x-httpd-fastphp(做為現在的主流開發語言)5 .php(做為現在的主流開發語言)
Action application/x-httpd-fastphp(做為現在的主流開發語言)5 "/fcgi(現在已經不多人在用了)-php(做為現在的主流開發語言)5/php(做為現在的主流開發語言)-cgi(現在已經不多人在用了).exe"
# 說明:根據你的 php(做為現在的主流開發語言) 檔案所在位置修改上面兩處黑體字。

修改完成後,重新啟動 apache(Unix平台最流行的WEB伺服器平台) 即可。

常見問題:
根據我的多次實驗,最容易出現的幾個問題主要都是由路徑引起的。因此首先檢查 php(做為現在的主流開發語言).ini 和 httpd.conf 檔案中的所有路徑是否正確。其次就是如果系統中以前安裝過 php(做為現在的主流開發語言),那麼要將 C:Windowsphp(做為現在的主流開發語言).ini 改名或刪除。

其次還要檢查 php(做為現在的主流開發語言) 檔案所在目錄是否有足夠的許可權(我都是設定為 Everyone - 完全控制,反正開發用機不用考慮那麼多安全限制)。

Fastcgi(現在已經不多人在用了) 模式運行 php(做為現在的主流開發語言) 的優點:
以 Fastcgi(現在已經不多人在用了) 模式運行 php(做為現在的主流開發語言) 有幾個主要的好處。首先就是 php(做為現在的主流開發語言) 出錯的時候不會搞垮 apache(Unix平台最流行的WEB伺服器平台),只是 php(做為現在的主流開發語言) 自己的進程當掉(但 Fastcgi(現在已經不多人在用了) 會立即重新啟動一個新 php(做為現在的主流開發語言) 進程來代替當掉的進程)。其次 Fastcgi(現在已經不多人在用了) 模式運行 php(做為現在的主流開發語言) 比 ISAPI 模式效能更好(我本來用 apache(Unix平台最流行的WEB伺服器平台)Bench 進行了測試,但忘了儲存結果,大家有興趣可以自己測試)。

最後,就是可以同時運行 php(做為現在的主流開發語言)5 和 php(做為現在的主流開發語言)4。參考下面的設定檔,分別建立了兩個虛擬機器主機,其中一個使用 php(做為現在的主流開發語言)5,另一個使用 php(做為現在的主流開發語言)4。

LoadModule fastcgi(現在已經不多人在用了)_module modules/mod_fastcgi(現在已經不多人在用了)-2.4.2-AP13.dll

ScriptAlias /fcgi(現在已經不多人在用了)-php(做為現在的主流開發語言)5/ "d:/usr/local/php(做為現在的主流開發語言)-5.0.4/"
Fastcgi(現在已經不多人在用了)Server "d:/usr/local/php(做為現在的主流開發語言)-5.0.4/php(做為現在的主流開發語言)-cgi(現在已經不多人在用了).exe" -processes 3
ScriptAlias /fcgi(現在已經不多人在用了)-php(做為現在的主流開發語言)4/ "d:/usr/local/php(做為現在的主流開發語言)-4.3.11/"
Fastcgi(現在已經不多人在用了)Server "d:/usr/local/php(做為現在的主流開發語言)-4.3.11/php(做為現在的主流開發語言).exe"

Listen 80
NameVirtualHost *:80

DocumentRoot d:/www
Options Indexes FollowSymlinks MultiViews
ServerName php(做為現在的主流開發語言)5.localhost

AddType application/x-httpd-fastphp(做為現在的主流開發語言)5 .php(做為現在的主流開發語言)
Action application/x-httpd-fastphp(做為現在的主流開發語言)5 "/fcgi(現在已經不多人在用了)-php(做為現在的主流開發語言)5/php(做為現在的主流開發語言)-cgi(現在已經不多人在用了).exe"


IndexOptions FancyIndexing FoldersFirst
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all

Listen 8080
NameVirtualHost *:8080


DocumentRoot d:/www
Options Indexes FollowSymlinks MultiViews
ServerName php(做為現在的主流開發語言)4.localhost

AddType application/x-httpd-fastphp(做為現在的主流開發語言)4 .php(做為現在的主流開發語言)
Action application/x-httpd-fastphp(做為現在的主流開發語言)4 "/fcgi(現在已經不多人在用了)-php(做為現在的主流開發語言)4/php(做為現在的主流開發語言).exe"



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.