Php
IIS6 + PHP + FastCGI 500 錯誤 - 從哪裡開始尋找?
我已經使用 FastCGI 設置了 IIS6 以使用 php-cgi.exe。
我有一些外部各方的 php 網站,我正試圖在測試環境中執行。
一個簡單的網站給了我一個 FastCGI 錯誤頁面。這不會發生在每個頁面上,它似乎只是發生在某些頁面上,而其他頁面則正確顯示。
- 問題:有什麼方法可以在某處啟用日誌記錄,以便我可以獲得有關此問題的更多資訊?
我看過
- 事件日誌
- IIS 網站日誌 (c:\windows\system32\Logfiles)
- PHP日誌
但沒有結果,除了 IIS 網站日誌提到返回 500 頁。
- 問題:有沒有其他方法可以調試/檢查可能出錯的地方?
這是頁面的樣子:
FastCGI 錯誤
FastCGI 處理程序無法處理請求。錯誤詳情:
FastCGI 程序意外退出錯誤號:-1073741571 (0xc00000fd)。錯誤描述:未知錯誤 HTTP 錯誤 500 - 伺服器錯誤。網際網路資訊服務 (IIS)
回答
顯然,錯誤消息意味著堆棧溢出,因此調試是消息。我不是 PHP 開發人員,所以這是一個非常痛苦的過程。然而,我們將問題縮小到 Ajax 請求,但我想這可能發生在任何類型的請求中:
請求本身導致伺服器返回一個 500。用 Fiddler 嘗試了該請求後,我們發現 GET 請求中的 Cookie 條目包含一個 PHPSESSID 項。將其排除在外時,該請求確實有效。
所以這個問題的答案(在我們的例子中)是從請求中省略 PHPSESSID。現在剩下的就是弄清楚如何做到這一點:)
錯誤程式碼
-1073741571 (0xc00000fd)
表示堆棧溢出。您將需要調試您的程式碼。
嘗試在http://forums.iis.net上搜尋。他們似乎建議您嘗試升級 PHP,或者應用程序出現問題導致 PHP 或 fastCGI 程序崩潰。
祝你好運。