簡體   English   中英

如何隔離不需要的 PHP 錯誤消息?

[英]How do I isolate unwanted PHP error messages?

我正在使用 wamp 並且需要知道為什么我會在所有瀏覽器中出現服務器錯誤消息。 (見抓取)。 我在 php.ini 中關閉了錯誤顯示,並且在 httpd.conf 文件中看不到任何顯示這些的地方。 對於如何解決此問題,我將不勝感激。 如果有人需要更多代碼或信息,我很樂意在小提琴中提供。

我正在使用 php5.3.5 和 apache 2.0.53。

謝謝

在此處輸入圖像描述

您確定display_errors沒有在您的代碼中由某些 function 在運行時設置嗎? ini_set可用於在運行時設置該值,如此 PHP 文檔示例所示:

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', 1);
}

echo ini_get('display_errors');
?>

display_errors是可變的PHP_INI_ALL文檔)。

這意味着它可以在.htaccess中啟用,或者在使用ini_set()的運行腳本中啟用。 檢查您的 .htaccess 文件; 請注意,服務器(在默認配置中)也會檢查父目錄中的 .htaccess 文件 - 因此,如果您的站點位於/var/www/example.com/htdocs中,請檢查此路徑中每個目錄中的.htaccess文件。

我在 php.ini 中關閉了錯誤顯示

您是否檢查過您更改/檢查的 php.ini 文件是否是 PHP 正在使用的文件? (由 phpinfo() 顯示)

更改 php.ini 文件后是否重新啟動了網絡服務器?

什么搶? 如果上面的 q 不能解決您的問題,請提供錯誤消息的文本。

看起來你正在使用 zend 框架。 如果您不想顯示錯誤消息。 (無論如何關閉錯誤不會修復它們)

選項1.改變應用環境。 編輯您的引導文件(在公共目錄中)找到以下行

defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

跟隨

defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

選項 2. 編輯您的 application.ini(在 application/configs 目錄中)文件。 將所有 phpSettings.display_errors=1 更改為 phpSettings.display_errors = 0。

無論如何,我建議使用選項 2。

但請記住關閉錯誤不會修復它們。 如果您發布您的代碼,我們可以提供幫助。

從OP的評論:

在 php 信息文件中,display_errors 顯示為 on。 在 php.ini 文件中,它被禁用:;display_errors = On。 為什么會這樣。 我檢查了多個ini文件,但只能看到1。

如果該選項在php.ini中被注釋掉,則它沒有被禁用:它意味着“使用默認值”。 IIRC,這里的默認值為On 將行display_errors = Off添加到 php.ini。

暫無
暫無

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

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