48 votes

PHP CLI n'enregistre pas les erreurs

PHP n'enregistre actuellement pas les erreurs produites à partir de la ligne de commande.

J'ai :

 log_errors = On
error_log = /var/log/php_errors.log

dans /etc/php5/cli/php.ini

Me manque-t-il un paramètre supplémentaire pour que cela fonctionne ?

50voto

George Cummins Points 16354

Veuillez vérifier que le compte utilisateur exécutant PHP CLI a un accès en écriture à /var/log/php_errors.log .

De plus, vous pouvez vérifier que vous utilisez le bon fichier php.ini comme ceci :

 php -a -c /etc/php5/cli/php.ini

17voto

David Chan Points 3690

à titre de diagnostic, vous pouvez tenter de forcer une écriture dans le journal des erreurs de cette façon.

 php -c /etc/php5/cli/php.ini -r " error_log('test 123'); "

vous devriez maintenant voir le test 123 dans votre log

 tail /var/log/php_errors.log

5voto

Dangelov Points 390

Le comportement de journalisation/rapport de PHP dépend également de error_reporting.

Certains frameworks PHP (par exemple CodeIgniter) exécutent une error_reporting(E_STRICT) ou l'équivalent, en mode production, ce qui réduira considérablement le nombre/le type d'erreurs enregistrées.

Si vous souhaitez déboguer quelque chose, vous pouvez simplement mettre l'instruction suivante juste avant votre code :

 error_reporting(E_ALL);

3voto

Charlie Points 13

Si vous ne pouvez pas comprendre pourquoi ou si vous n'avez pas d'autorisations d'utilisateur sur php.ini, une autre façon de déboguer une erreur d'analyse sans information consiste à envelopper votre source php dans une autre source php avec un corps comme :

 ini_set('display_errors',1);
error_reporting(E_ALL);

include "mybustedfile.php";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X