2016-12-16 8 views
1

私は最近Ubuntu 14.04にapache2とphp5.6をインストールしました apacheとcliのphp.iniでは、すべてのパラメータを正しい設定):Ubuntu 14.04のphp5.6がデフォルトのエラーハンドラでエラーを表示していません

error_reporting = E_ALL 
display_errors = On 
display_startup_errors = On 
log_errors = On 
track_errors = On 
error_log = "/var/log/php_errors.log" 

error_logが指し示すファイルは書き込み可能です。

linkeやWebブラウザのコマンドでエラーを表示することができます。

は、私は、Webを検索時間をspendedとだけ、私は手動で1つのスクリプトで処理エラー設定されて動作するように管理すると思う:

set_error_handler("var_dump"); 

いくつかの情報が印刷されたエラーハンドラを変更する(MySQLのエラーをその私は強制しました):

$ php informe_presupuestos.php 
/var/www/buv/lib/sqlquery.class.php:88: 
int(2) 
/var/www/buv/lib/sqlquery.class.php:88: 
string(72) "mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given" 
/var/www/buv/lib/sqlquery.class.php:88: 
string(66) "/var/www/buv/lib/sqlquery.class.php" 
/var/www/buv/lib/sqlquery.class.php:88: 
int(88) 
/var/www/buv/lib/sqlquery.class.php:88: 
array(1) { 
    'result_id' => 
    string(4) "pres" 
} 

私はまた、スクリプトの開始時にrestore_error_handler()を試みましたが動作しません。

どのようにエラー表示を有効にすることができますか?

答えて

0

リトルnormalyそれが動作するはずですので、あなたは、持っているが、私はあなたの.phpでそうmybeこれを試していただきました!今いけないものを有線:あなたがいる間

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
register_shutdown_function(function(){while(ob_get_level()>0)ob_end_flush();}); 

ところで

/var/log/php_errors.logの内容が何でありますかあなたのスクリプトをテストする。 http://php.net/manual/en/function.set-error-handler.phpから

次のエラータイプはユーザ定義関数で扱うことができない。E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING、及びE_STRICTのほとんどははset_error_handler(ファイルに上昇)が呼び出されます。

これで現実的ではない場合は、デフォルトのエラーハンドラを使用する方がよいでしょう。

+0

私はスクリプトの最初にあなたのコードを試しましたが、何も表示されません。エラー・ログは空です。 – Sergi

+0

完全な検証の場合のみ。 'register'行の後に'新しいNonClass(); 'を追加して、もう一度やり直してみてください。 – JustOnUnderMillions

+0

'php.ini'の場合:' service apache2 restart'の変更後にApacheを再起動する必要があります。そして、あなたは 'cli' php.iniまたは' cgi'バージョンだけを変更しましたか?または、これらの2つを混ぜることができます – JustOnUnderMillions

関連する問題