RaidenHTTPD web Server by team johnlong

以CGI方式執行PHP程式(可達成同時執行PHP4及PHP5)


雷電HTTPD Web Server預設是以ISAPI方式執行PHP的程式,那是否有方式能夠透過CGI的方式執行呢? 答案是有的,但為什麼要透過CGI方式執行呢? ISAPI不是比較強比較快嗎?那又何必須要CGI呢?

這個問題我們目前想到了兩種答案,提供一點心得。

可能性一:同時想要執行PHP4及PHP5,基本上ISAPI或者是APACHE MODULE版本的PHP,他的PHP.INI都是放置於WINDOWS的系統目錄當中,而PHP5與PHP4的PHP.INI又不盡相同,基本上就否定了同時執行兩套版本之PHP ISAPI的可能性,但若又有同時要跑PHP4與PHP5的需求,即可將ISAPI的PHP跑PHP5而CGI的PHP跑PHP4來達成,因為CGI版本的PHP讀取的是與PHP.EXE相同目錄中的PHP.INI,自然不與ISAPI版本相衝突。

可能性二:規避PHP ISAPI的當機狀況,誰說PHP是完美的? 沒有錯,PHP也會當機,而且由於ISAPI版本的PHP DLL檔案載入記憶體後就不會被卸載,除非系統重新啟動,因此當PHP ISAPI子系統發生當機時,便會造成Web Server無法繼續提供PHP解譯的機能。然而CGI版本的PHP.EXE乃獨立於伺服器程式行程(Process)之外的獨立程式,雖然啟動所花的時間較長,但若當機也是該行程自己當掉而已,並不會影響到其他的PHP執行。

設定方式:

首先我們假設您預設安裝為PHP5 ISAPI版本的雷電HTTPD,因此我們要嘗試將PHP4版本的PHP也安裝為CGI的方式執行,並且對映到 *.php4 的副檔名。

於工作列滑鼠右鍵點選雷電HTTPD圖示,選設定...後進入設定畫面: 這邊可以看到 php isapi dll 使用為 php5isapi.dll 表示目前 php 執行的是 PHP4 ISAPU 版本。

點選虛擬主機編輯器: 首先假設你已經把 PHP4 解壓縮到 c:\php 的目錄當中,並且正確的設定了 c:\php\php.ini,這邊我們啟用CGI2處理器,並且將其處理器路徑設為 c:/php/php.exe,注意下面 CGI文件2 要將 .php4 加入,這樣子在瀏覽器存取帶有 *.php4 附檔名的 URL 時,PHP4的CGI處理器就會被利用到。






FTP Server FTP Server


Copyright 2000-2024 RaidenHTTPD.com. All rights reserved. The copyrighted works contained in this information service shall not be copied, reproduced, varied, altered, modified, adapted, distributed, performed and displayed in any form without the written permission of the copyright owner. All trademarks belong to their respective owners .