?
本文檔使用 PHP中文網(wǎng)手冊(cè) 發(fā)布
錯(cuò)誤日志對(duì)于發(fā)現(xiàn)程序中的錯(cuò)誤是非常有幫助的,但是有些時(shí)候它也會(huì)將應(yīng)用程序的結(jié)構(gòu)暴露給外部。為了有效的保護(hù)你的應(yīng)用程序不受到由此而引發(fā)的問(wèn)題。你需要將在你的服務(wù)器上使用開(kāi)發(fā)和生產(chǎn)(線上)兩套不同的配置。
開(kāi)發(fā)環(huán)境
為了在開(kāi)發(fā)環(huán)境中顯示所有可能的錯(cuò)誤,將你的 php.ini 進(jìn)行如下配置:
display_errors = On display_startup_errors = On error_reporting = -1 log_errors = On
將值設(shè)為 -1 將會(huì)顯示出所有的錯(cuò)誤,甚至包括在未來(lái)的 PHP 版本中新增加的類型和參數(shù)。 和 PHP 5.4 起開(kāi)始使用的 E_ALL 是相同的。-php.net
E_STRICT 類型的錯(cuò)誤是在 5.3.0 中被引入的,并沒(méi)有被包含在 E_ALL 中。然而從 5.4.0 開(kāi)始,它被包含在了 E_ALL 中。這意味著什么?這表示如果你想要在 5.3 中顯示所有的錯(cuò)誤信息,你需要使用 -1 或者 E_ALL | E_STRICT。
不同 PHP 版本下開(kāi)啟全部錯(cuò)誤顯示
< 5.3 -1 或 E_ALL
5.3 -1 或 E_ALL | E_STRICT
> 5.3 -1 或 E_ALL
生產(chǎn)環(huán)境
為了在生產(chǎn)環(huán)境中隱藏錯(cuò)誤顯示,將你的 php.ini 進(jìn)行如下配置:
display_errors = Off display_startup_errors = Off error_reporting = E_ALL log_errors = On
當(dāng)在生產(chǎn)環(huán)境中使用這個(gè)配置時(shí),錯(cuò)誤信息依舊會(huì)被照常存儲(chǔ)在 web 服務(wù)器的錯(cuò)誤日志中,唯一不同的是將不再顯示給用戶。