PHP 開啟及關閉錯誤訊息輸出

參考網址:LINUX 技術手札

程式前沿 PHP中error_reporting()用法詳解

要開啟或關閉 PHP 的錯誤訊息有幾種方法, 分別是在 php.ini 內設定, httpd.conf 及 .htaccess 設定, 或者在 PHP 程式內設定, 以下是各種方法的設定方法。

1. php.ini

在 php.ini 一般預設路徑在 /etc/php.ini, 在 php.ini 內找到 display_errors, 設定為 On 是開啟錯誤信息, Off 是關閉輸出:

 

1

2

3

display_errors = On   # 開啟錯誤提示

 

display_errors = Off   # 關閉錯誤提示

 

另一個可以設定的選項是 error_reporting, 它可以設定輸出那些錯誤提示, 常用的設定有:

 

1

2

3

4

5

error_reporting E_ALL   # 輸出全部錯誤

 

error_reporting E_ALL & ~E_NOTICE    # 除了 Notice 外,全部錯誤輸出

 

error_reporting 0       # 不輸出任何錯誤

 

修改 php.ini 後, 需要重新啟動網頁伺服器, 設定才會生效:

# systemctl restart httpd

2. httpd.conf / .htaccess

另一種方法是透過 apache 的層面設定, 可以在 httpd.conf 及 .htaccess 設定, 好處是可以對個別虛擬主機或目錄進行設定, 不用修改整台伺服器的設定, CentOS 下 httpd.conf 的預設位置在 /etc/httpd/conf/httpd.conf

 

# vi /etc/httpd/conf/httpd.conf

在提定的目錄或 VirtualHost 設定, 例如想在 /var/www/html/debug 設定輸出全部錯誤, 可以這樣:

 

1

2

3

<Directory "/var/www/html/debug">

    php_flag display_errors On

    php_flag error_reporting 32767

 

可以看到設定跟 php.ini 差不多, 只是在 php 選項前加入 php_flag 或 php_value 設定, 而在 httpd.conf 的設定, 需要重新啟動網頁伺服器, 設定才會生效:

# systemctl restart httpd

以上語法如果放在 .htaccess 內同樣適用, 而且不用重新啟動網頁伺服器, 只要在設定的目錄下建立 .htaccess, 加入以下語法即可:

php_flag display_errors On
php_flag error_reporting 32767

p.s. error_reporting 只可以用數值設定, 所有設定數值可以在 PHP 官網 取得。

3. PHP 程式

另一個方法是在 php 程式內設定, 分別可以用 ini_set() 及 error_reporting() 兩個函式設定:

 

 

1

2

3

4

5

6

7

<?php

ini_set('display_errors','off');    # 關閉錯誤輸出

 

ini_set('display_errors','on');     # 開啟錯誤輸出

 

error_reporting(E_ALL & ~E_NOTICE)  # 設定輸出錯誤類型

?>

 

 

本篇發表於 未分類。將永久鏈結加入書籤。