我們正在遷移到運行Windows 2003和IIS 6的新服務器。當我的PHP代碼運行時,它在特定行上有一個警告(我現在期待的但很快就會解決)。但是,當它遇到警告時,它會立即停止處理並在HTTP標頭中返回500錯誤。通常,我希望PHP輸出警告,但繼續處理腳本。PHP警告導致腳本在運行FastCGI的IIS上停止
IIS,FastCGI或PHP的配置中是否有某些內容會在PHP遇到警告時返回500個錯誤?
澄清:我不想壓制警告;我希望他們展示。我不希望腳本停止處理警告。
我們正在遷移到運行Windows 2003和IIS 6的新服務器。當我的PHP代碼運行時,它在特定行上有一個警告(我現在期待的但很快就會解決)。但是,當它遇到警告時,它會立即停止處理並在HTTP標頭中返回500錯誤。通常,我希望PHP輸出警告,但繼續處理腳本。PHP警告導致腳本在運行FastCGI的IIS上停止
IIS,FastCGI或PHP的配置中是否有某些內容會在PHP遇到警告時返回500個錯誤?
澄清:我不想壓制警告;我希望他們展示。我不希望腳本停止處理警告。
找出問題所在。 log_errors
在php.ini中設置爲On
,但是error_log
未設置。這導致PHP停止了一切。將display_errors
設置爲on
後,現在會顯示警告,以便我可以看到輸出中的事件正在中斷。
這個線程是有幫助的:http://forums.iis.net/p/1146102/1856222.aspx#1856222
我不知道IIS或FastCGI,但afaik PHP沒有這樣的選項。但是,您可以設置error_reporting
(在你的php.ini
)到
E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
作出警告消失。
這也很大程度上取決於您的PHP代碼,如果您在代碼中執行一些複雜的操作併發生錯誤,Web服務器有時會拋出500個錯誤。我建議你:
把一個@
上線壓制的錯誤,即:
$ X = @創建my_function($ Y);
查看您的網絡服務器日誌以獲取確切的錯誤消息,然後將其發佈到此處,也許我們可以爲您提供更好的解決方案。
那麼,你怎麼設置`error_log`來?請在你的答案中加入以幫助他人。 – 2014-07-22 01:41:48