簡體   English   中英

代碼失敗時,Linux中的PHP(LAMP)無法顯示錯誤原因嗎? (Ubuntu)

[英]PHP in linux (LAMP) is not displaying cause of errors when code fails? (Ubuntu)

我是Windows用戶,曾經使用過Wamp。 每次PHP代碼失敗,瀏覽器都會顯示以下內容: error in line number xx

我按照本教程的安裝進行了安裝,一切正常。

現在,當代碼失敗時,PHP僅顯示空白頁。

有任何建議嗎?

(我正在使用Ubuntu 10.04)。

我知道這是一個舊帖子,但是我遇到了同樣的問題,發現在error_reporting之后,有一個display_errors選項,將其更改為On。

正如古納羅克(Gurnarok)指出的那樣,這是個老問題,但仍然是答案。

在Ubuntu上安裝標准的LAMP服務器即可。 我只是稱其為“生產”模式,即,當您的網站上線時,您的頁面不會向用戶顯示錯誤。 我很喜歡這樣做,但是起初我也很困惑。

除了修改我的php.ini文件進入“發展”模式的,我只是把這個在我的PHP文件的頂部(或PHP 文件中 ,在我的情況,因為我通常通過index.php文件的所有內容):

ini_set('display_errors', true);
error_reporting(E_ALL ^ E_NOTICE);

因此,為什么error_reporting本身不能解決問題的原因很可能是因為php.ini文件中的display_errors未設置為true 上面的代碼應注意這一點。

我更喜歡排除PHP“ Notice”通知,例如關於不存在的數組鍵的通知(在我的情況下,是最常見的Notification),但是完全歡迎您將其更改為error_reporting(E_ALL);

當然,您可以在php.ini文件中設置這些變量,我只是喜歡這樣,所以當該站點上線時,我只需從index.php中刪除這兩行,就不會出現顯示錯誤的危險取決於我的用戶。

/etc/php5/apache2/下找到php.ini並將error_reporting的值設置為E_ALL 喜歡:

error_reporting = E_ALL

或者,如果您的虛擬主機正在提供一個,請檢查error.log

謝謝Phil,您的回答讓我開始思考,我終於設法解決了困擾我數周的問題,即我的PHP安裝根本沒有在HTML頁中顯示錯誤(有時會顯示通知消息,但從不出現任何語法錯誤等)。 即使我將所有其他錯誤設置都設置為“ on”,並且將log_errors設置為on,並且僅用於日志的文件名通知已記錄到日志文件中,但從未出現任何語法錯誤。 在開發服務器上不是很有用:)

本以為我會在這里發表我的發現,希望該信息可以幫助其他遇到相同問題的人,因為Google對於解決該問題不是很有幫助。

在PHP 5之前的舊版PHP中,我以前總是在開發服務器上將PHP ini中的錯誤報告設置設置為“ E_ALL&E_NOTICE”。 在更高版本的PHP中(無論如何也要安裝我的Ubuntu Oneric進行安裝),使用此設置似乎不會導致在HTML頁面上根本不顯示任何輸出,而不管其他php.ini設置如何(例如display_errors = on等)。 在PHP頁面中即時設置值沒有幫助,因為似乎php.ini值會覆蓋每個文件設置。

我僅將error_reporting值更改為“ E_ALL”,現在它顯示語法錯誤。 php.ini中為開發服務器推薦的設置(E_ALL | E_STRICT)對我也不起作用,因此非常感謝。 +1給你:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM