Windows-Server-2003
IIS/PHP/FCgi 設置錯誤 - 無頁面無錯誤
不是我安裝的第一個設置,但我無法弄清楚發生了什麼……
系統:
Windows Server 2003
帶有 FastCGI 的 IIS
PHP 5.3.1
我已經設置:
- fcgi.ini 像往常一樣用一個
$$ PHP $$指向我的 C:\PHP\php- cgi.exe 的部分 -
.php 文件上的 IIS / FCGI 映射
PHP.ini 幾乎是標準的。剛剛啟用了完整的錯誤記錄和 MySQL 擴展。 最奇怪的是結果:
當我在瀏覽器中呼叫我的 test.php 時,它永遠只是“連接……”。沒有顯示,沒有錯誤。
即使我的 test.php 不包含 PHP !
但是,如果我將其重命名為 test.html,一切正常!
我在這裡有點迷路了……
它現在可以工作了:我只是忘記將 PHP 設置“extension_dir”正確設置為“ext”,這在 PHP Zip 版本中不是預設設置。
我最近實現了一個類似的設置:
- Windows Server 2003 網路版
- IIS/FastCGI ( http://www.iis.net/expand/fastcgi )
- PHP 5.3.1(通過 zip 文件安裝到 c:\php 中)
根據我的部署說明,安裝步驟是:
- 下載 PHP 5.3.1 zip(http://windows.php.net/download/,注意“我選擇哪個版本?”部分)
- 安裝到 c:\php
- 測試php -v在命令行上工作(在 c:\php 中)
- 將 .php 與 FastCGI 關聯:IIS 管理器 -> 機器 -> 網站 -> 站點 -> 右鍵點擊,選擇屬性 -> 選擇“主目錄”選項卡,點擊“配置”,映射選項卡。.php 的配置如下所示:
- 配置 FastCGI 的配置文件 (C:\WINDOWS\system32\inetsrv\fcgiext.ini) 至少:
[種類] php=PHP [PHP] ExePath=c:\php\php-cgi.exe
- 將以下內容附加/更改到 c:\php\php.ini。如果沒有這個配置,我的配置會在提供空白頁和根本不載入之間反彈(我想這是你的問題):
fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo = 1 cgi.force_redirect = 0
- 放
顯示錯誤
在 c:\php\php.ini 中並取消註釋 extension=php_mysql.dll。
- 重新啟動站點的 IIS(點擊停止/播放按鈕)
在此配置中,您基本上擁有兩個組件,即 IIS-FastCGI-PHP 和 PHP 本身之間的管道。我建議隔離其中哪些不起作用:
- 臨時編輯 fcgiext.ini 並將 PHP ExePath 指向不同的東西,例如 c:\php\nothere.exe。如果伺服器開始為 PHP 請求返回“找不到 FastCGI 執行檔”,那麼我認為 FastCGI 工作正常,而 PHP 有問題。
- 使用預設配置執行 PHP,上面的 fastcgi/cgi 更改並打開 display_errors。您需要為要重新啟動的站點重新啟動 IIS(並可能終止任何 php-cgi 程序)以辨識更改。
- 使用簡單的 phpinfo() 在命令行執行 PHP;腳本,檢查基本操作,並註意載入的 php.ini 的位置。這將檢查流氓配置文件(例如,在 c:\、c:\windows 等中)未被使用。
這些步驟確認(至少)正在呼叫 PHP 執行檔,以及最基本的配置。
希望這可以幫助,
洛克