2015年10月20日 星期二

PHP 顯示syntax error


如果在寫php時忘記加分號( Semicolon ),訪問下面這個頁面會得到空白頁
ini_set("display_errors", "1");
error_reporting(E_ALL);
$bear = array(1,2,3)
如何顯示錯誤呢?
error_setting.php
ini_set("display_errors", "1");
error_reporting(E_ALL);
include 'error.php';
error.php
$bear = array(1,2,3)
echo "test";
訪問error_setting.php會得到錯誤訊息:
Parse error: syntax error, unexpected 'echo' (T_ECHO) in /var/www/html/test.vm/error.php on line 
但直接訪問error.php仍然會得到空白頁

20160519 找到原因
修改 /etc/php5/fpm/php.ini
error_reporting = E_ALL
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT #忽略notice和Strict Standards錯誤,但會報Fatal錯誤
syntaxfatal 的error log 與  /etc/php5/fpm/php-fpm.conf 無關,與nginx /etc/nginx/sites-available/test.vm 的 error_log /var/www/html/test.vm/logs/error.log; 有關
這樣畫面上和error log 都有錯誤出現
http://stackoverflow.com/questions/1911920/does-php-error-reporting0-affect-error-logging-or-just-display
結論:看來沒辦法只顯fatal和syntax和notice示錯誤在error log,除非用error_log()或用框架

參考資料:
http://stackoverflow.com/questions/16933606/error-reportinge-all-does-not-produce-error  error_reporting(E_ALL) does not produce error




沒有留言:

張貼留言