php預設錯誤不顯示,可修改 /etc/php.ini
; 約513行,顯示全部除了作廢等級 error_reporting = E_ALL & ~E_DEPRECATED ; 約530行,顯示錯誤 display_errors = On ; 約541行,顯示php啟動錯誤 display_startup_errors = Off ; 約 551,記錄錯誤 log_errors = On
但如果沒辦法或沒存取php.ini的權限,例如是共用的伺服器;或是不想影響其他網頁的設定,有兩個方法:
方法一,使用php的ini_set
<?php ini_set(‘error_reporting’, E_ALL & ~E_DEPRECATED); ini_set(‘display_errors’, 1); ini_set(‘display_startup_errors’, 1);
方法二,使用 .htaccess 檔
條件是目錄的權限要容許 overwrite
<Directory "/path/to/your/website">
AllowOverride All
...
</Directory>
在你的網頁目錄下新增一個.htaccess的檔,內容為
php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on # 設定把錯誤記錄 php_flag log_errors on php_value error_log /path/to/your/website/PHP_errors.log # 防止直接由網頁存取log <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files>
參考資料
[1] http://perishablepress.com/press/2007/12/17/how-to-enable-php-err