Windows-Server-2003

IIS/PHP/FCgi 設置錯誤 - 無頁面無錯誤

  • December 13, 2009

不是我安裝的第一個設置,但我無法弄清楚發生了什麼……

系統:

  • 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 版本中不是預設設置。

我最近實現了一個類似的設置:

根據我的部署說明,安裝步驟是:

  • 下載 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 執行檔,以及最基本的配置。

希望這可以幫助,

洛克

引用自:https://serverfault.com/questions/93906