程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Windows 下 Apache 1.3 以 FastCGI 模式運行 PHP

Windows 下 Apache 1.3 以 FastCGI 模式運行 PHP

編輯:關於PHP編程

我一直以來都是以 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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved