2016-12-16 1 views
1

Ich habe vor kurzem Apache2 und PHP5.6 auf Ubuntu installiert 14.04 In der php.ini für Apache und CLI habe ich alle Parameter mit der richtigen Konfiguration (I denken):php5.6 auf Ubuntu 14.04 zeigt keine Fehler mit Default Error Handler

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

Die Datei, die error_log zeigt, ist beschreibbar.

Und ich kann Fehler machen, um in der Befehlszeile noch im Webbrowser anzuzeigen.

ich spended Stunden, um die Web-Suche und das denke ich nur manuell den Fehler in einem Skript behandelt arbeiten verwaltet Einstellung mit:

set_error_handler("var_dump"); 

Wenn die Fehlerbehandlung ändert einige info (mysql Fehler gedruckt wird, dass ich zwang):

$ 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" 
} 

ich habe auch versucht() am beggining des Skripts restore_error_handler, aber nicht funktioniert.

Irgendwelche Ideen, wie ich die Fehleranzeige aktivieren kann?

Antwort

0

Little verdrahtet, was Sie haben, denn normalerweise sollte es funktionieren, aber ich nicht, was ist jetzt in Ihrem .php so mybe dies versuchen:

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

Und übrigens, was ist der Inhalt von /var/log/php_errors.log, während Sie Testen Sie Ihr Skript.

Hinweis von http://php.net/manual/en/function.set-error-handler.php:

Folgende Fehlertypen können nicht mit einer benutzerdefinierten Funktion behandelt werden: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, und die meisten E_STRICT in der Datei auf, wo set_error_handler () wird genannt.

Also, wenn Sie jetzt nicht wirklich, verwenden Sie besser die Standard-Fehlerbehandlung.

+0

Ich habe Ihren Code am Anfang des Skripts versucht und nichts wird angezeigt. Das Fehlerprotokoll ist leer. – Sergi

+0

Nur für eine vollständige Validierung. Bitte fügen Sie 'new NonClass();' nach der 'register' Zeile hinzu und versuchen Sie es erneut und sagen Sie, wenn Sie etwas sehen. – JustOnUnderMillions

+0

Auch für 'php.ini': Sie müssen Apache nach Änderungen' service apache2 restart' neu starten. Und hast du nur die 'cli' php.ini oder die' cgi' Version geändert? Oder vielleicht gemischt diese beiden? – JustOnUnderMillions

Verwandte Themen