溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何修改php.ini以達到屏蔽錯誤信息并記錄日志

發(fā)布時間:2021-10-13 09:25:03 來源:億速云 閱讀:102 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關如何修改php.ini以達到屏蔽錯誤信息并記錄日志,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

那是因為php.ini中關閉了錯誤顯示,將錯誤寫成了文件,這是人為設置的結果,display_errors =on就好了。
不過不顯示錯誤倒安全點,建議調(diào)試時打開,然后提供服務時關閉。

提供一點資料給你:

display_errors = On

php缺省是打開錯誤信息顯示的,我們把它改為:

display_errors = Off

關閉錯誤顯示后,php函數(shù)執(zhí)行錯誤的信息將不會再顯示給用戶,這樣能在一定程度上防止攻擊者從錯誤信息得知腳本的物理位置,以及一些其它有用的信息,起碼給攻擊者的黑箱檢測造成一定的障礙。這些錯誤信息可能對我們自己有用,可以讓它寫到指定文件中去,那么修改以下:

log_errors = Off

改為:

log_errors = On

以及指定文件,找到下面這行:

;error_log = filename

去掉前面的;注釋,把filename改為指定文件,如/usr/local/apache/logs/php_error.log

error_log = /usr/local/apache/logs/php_error.log

這樣所有的錯誤都會寫到php_error.log文件里。

====================================

error_reporting
配置錯誤信息回報的等級。
語法: int error_reporting(int [level]);
返回值: 整數(shù)
函數(shù)種類: PHP 系統(tǒng)功能

本函數(shù)用來配置錯誤信息回報的等級,參數(shù) level 是一個整數(shù)的位遮罩 (bitmask),見下表。
遮罩值 表示名稱
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING

E_NOTICE 表示一般情形不記錄,只有程序有錯誤情形時才用到,例如企圖存取一個不存在的變量,或是呼叫 stat() 函數(shù)檢視不存在的文件。
E_WARNING 通常都會顯示出來,但不會中斷程序的執(zhí)行。這對除錯很有效。例如:用有問題的正則表達式呼叫 ereg()。
E_ERROR 通常會顯示出來,亦會中斷程序執(zhí)行。意即用這個遮罩無法追查到內(nèi)存配置或其它的錯誤。
E_PARSE 從語法中解析錯誤。
E_CORE_ERROR 類似 E_ERROR,但不包括 PHP 核心造成的錯誤。
E_CORE_WARNING 類似 E_WARNING,但不包括 PHP 核心錯誤警告。
————————————
額外:
1.
php文件中
error_reporting(7) 其中的7 就是 1+2+4,也就是回報 1 E_ERROR 2 E_WARNING 4 E_PARSE
2.
php.ini中
display_errors = Off //默認是關閉錯誤提示
error_reporting = E_ALL //顯示從不良編碼實踐到無害提示到出錯的所有信息,由于回報的信息太細化了,包括了無害信息,為了在開發(fā)過程中能看到實際的提示,建議配置為 error_reporting = E_ALL & ~E_NOTICE

關于“如何修改php.ini以達到屏蔽錯誤信息并記錄日志”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

php
AI