国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

Windows 下 Apache 1.3 以 FastCGI 模式運(yùn)行 PHP

2024-05-05 00:11:06
字體:
供稿:網(wǎng)友

我一直以來都是以 ISAPI 模式運(yùn)行 PHP 的,這種方式最大的缺點(diǎn)就是穩(wěn)定性不好,當(dāng) PHP 出錯(cuò)的時(shí)候,Apache進(jìn)程也死掉了。后來看到網(wǎng)上關(guān)于 PHP 以 FastCGI 模式運(yùn)行的介紹,其中提到的種種好處(穩(wěn)定、安全、高性能)讓我決定嘗試一下。

不過事情遠(yuǎn)不如預(yù)計(jì)的那么順利。Google 了無數(shù)次也沒找到一篇如何在 Windows 下用 Apache + FastCGI 跑 PHP 的資料,IIS + FastCGI 跑 PHP 的倒是不少。其中有一篇提到 Zend 公司也推薦以 FastCGI 模式運(yùn)行 PHP()。

經(jīng)過幾個(gè)小時(shí)的摸索,終于成功實(shí)現(xiàn)了 Apache 1.3 + FastCGI 跑 PHP。

準(zhǔn)備工作:
首先訪問 下載用于 Apache 的 mod_fastcgi。我使用的是 mod_fastcgi-2.4.2-AP13.dll。下載后將這個(gè)文件復(fù)制到 Apache 的 modules 目錄中。

下載 PHP(我使用的 PHP-5.0.4),并解壓縮,根據(jù)需要修改 php.ini 文件。注意不需要從 PHP 所在目錄復(fù)制任何文件到 Windows 目錄中。

修改配置:
然后修改 httpd.conf 文件,加入下面幾行:

LoadModule fastcgi_module modules/mod_fastcgi-2.4.2-AP13.dll
ScriptAlias /fcgi-php5/ "d:/usr/local/php-5.0.4/"
FastCgiServer "d:/usr/local/php-5.0.4/php-cgi.exe" -processes 3
# 說明:此處的 -processes 3 表示啟動三個(gè) php-cgi.exe 進(jìn)程,
# 關(guān)于 FastCgiServer 的詳細(xì)參數(shù)請參考 FastCGI 文檔。
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 "/fcgi-php5/php-cgi.exe"
# 說明:根據(jù)你的 PHP 文件所在位置修改上面兩處黑體字。

修改完成后,重新啟動 Apache 即可。

常見問題:
根據(jù)我的多次試驗(yàn),最容易出現(xiàn)的幾個(gè)問題主要都是由路徑引起的。因此首先檢查 php.ini 和 httpd.conf 文件中的所有路徑是否正確。其次就是如果系統(tǒng)中以前安裝過 PHP,那么要將 C:Windowsphp.ini 改名或刪除。

其次還要檢查 PHP 文件所在目錄是否有足夠的權(quán)限(我都是設(shè)置為 Everyone - 完全控制,反正開發(fā)用機(jī)不用考慮那么多安全限制)。

FastCGI 模式運(yùn)行 PHP 的優(yōu)點(diǎn):
以 FastCGI 模式運(yùn)行 PHP 有幾個(gè)主要的好處。首先就是 PHP 出錯(cuò)的時(shí)候不會搞垮 Apache,只是 PHP 自己的進(jìn)程當(dāng)?shù)簦ǖ?FastCGI 會立即重新啟動一個(gè)新 PHP 進(jìn)程來代替當(dāng)?shù)舻倪M(jìn)程)。其次 FastCGI 模式運(yùn)行 PHP 比 ISAPI 模式性能更好(我本來用 ApacheBench 進(jìn)行了測試,但忘了保存結(jié)果,大家有興趣可以自己測試)。

最后,就是可以同時(shí)運(yùn)行 PHP5 和 PHP4。參考下面的配置文件,分別建立了兩個(gè)虛擬主機(jī),其中一個(gè)使用 PHP5,另一個(gè)使用 PHP4。

LoadModule fastcgi_module modules/mod_fastcgi-2.4.2-AP13.dll

ScriptAlias /fcgi-php5/ "d:/usr/local/php-5.0.4/"
FastCgiServer "d:/usr/local/php-5.0.4/php-cgi.exe" -processes 3
ScriptAlias /fcgi-php4/ "d:/usr/local/php-4.3.11/"
FastCgiServer "d:/usr/local/php-4.3.11/php.exe"

Listen 80
NameVirtualHost *:80

DocumentRoot d:/www
Options Indexes FollowSymlinks MultiViews
ServerName php5.localhost

AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 "/fcgi-php5/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 php4.localhost

AddType application/x-httpd-fastphp4 .php
Action application/x-httpd-fastphp4 "/fcgi-php4/php.exe"


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


使用上面的配置,訪問 就使用 PHP5,而訪問 就使用 PHP4。所以只要合理配置,就可以讓不同的虛擬主機(jī)使用不同版本的 PHP。

FastCGI 模式的一些缺點(diǎn):
說完了好處,也來說說缺點(diǎn)。從我的實(shí)際使用來看,用 FastCGI 模式更適合生產(chǎn)環(huán)境的服務(wù)器。但對于開發(fā)用機(jī)器來說就不太合適。因?yàn)楫?dāng)使用 Zend Studio 調(diào)試程序時(shí),由于 FastCGI 會認(rèn)為 PHP 進(jìn)程超時(shí),從而在頁面返回 500 錯(cuò)誤。這一點(diǎn)讓人非常惱火,所以我在開發(fā)機(jī)器上還是換回了 ISAPI 模式。

最后,在 Windows 中以 FastCGI 模式存在潛在的安全漏洞。因?yàn)槲疫€沒有找到如何在 Windows 環(huán)境下實(shí)現(xiàn) SuEXEC 的方法,因此 PHP 的進(jìn)程總是以最高權(quán)限運(yùn)行,這從安全角度來看顯然不是個(gè)好消息。

結(jié)束語:
本文對 FastCGI 的運(yùn)用還停留在很初級的階段,僅當(dāng)作拋磚引玉,希望有更成熟的解決方案出現(xiàn)。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 西宁市| 刚察县| 桃江县| 柳林县| 镇赉县| 阿城市| 噶尔县| 同心县| 汉中市| 开鲁县| 时尚| 吉木萨尔县| 彝良县| 弥渡县| 鸡东县| 荃湾区| 梨树县| 嘉定区| 太湖县| 河池市| 梁平县| 舒兰市| 长宁县| 灵丘县| 蓬莱市| 会东县| 龙江县| 平顶山市| 都匀市| 万盛区| 邹平县| 惠东县| 客服| 江川县| 清镇市| 喀喇| 营口市| 丹江口市| 永安市| 独山县| 乳山市|