Comment définir le journal des erreurs PHP CLI?
J'ai un script php en cours d'exécution juste amende par Apache, mais il échoue lors de l'exécution dans la cli, donc je veux savoir ce qui se passe. Pour cela, j'aimerais voir le journal des erreurs, mais la cli journal des erreurs que je n'est pas de travail. J'ai mis cela dans le bon php.fichier ini, ce qui est confirmé lorsque je obtenir le journal des erreurs de détails par le biais de la ligne de commande:
$ php -i | grep error
display_errors => Off => Off
display_startup_errors => Off => Off
error_append_string => no value => no value
error_log => /var/log/php_error_log => /var/log/php_error_log
error_prepend_string => <font color=ff0000> => <font color=ff0000>
error_reporting => 30711 => 30711
html_errors => Off => Off
ignore_repeated_errors => Off => Off
log_errors => On => On
log_errors_max_len => 1024 => 1024
track_errors => Off => Off
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
suhosin.disable.display_errors => Off => Off
suhosin.sql.bailout_on_error => Off => Off
Donc error_log
et log_errors
sont tous les deux ensemble. Passez, pas de journaux sont effectivement enregistrées. Les autorisations sont en place. Alors, que peut-il être? J'ai lu ce thread: PHP CLI de ne pas les erreurs du journal des, mais ne pouvait pas trouver une solution ici.
/var/log/php_error_log
?Il a eu accès à l'écriture, mais le problème s'est avéré être qu'il y a une redirection, ce qui n'a tout simplement pas montrer une sortie dans les CLI ni d'aucune erreur.
Une coquille de redirection ne devrait pas affecter le PHP est le comportement de la journalisation. vous pouvez poster
ls -al /var/log/php_error_log
?OriginalL'auteur user | 2012-01-21
Vous devez vous connecter pour publier un commentaire.
PHP via l'interface CLI et de la requête HTTP à la fois utiliser différentes de php.ini de configuration. Dans votre cas, je suis suspicios, si vous avez affaire avec le php.ini utilisé par la CLI de PHP. Pouvez-vous essayer d'exécution:
Cela permettra d'économiser votre phpinfo() dans le fichier local info.txt. Ensuite, ouvrez le fichier et trouver le réglage "Chargé Fichier de Configuration" - qui devrait pointer le chemin absolu chargé de php.fichier ini.
Si tout cela est OK, alors il suffit d'exécuter des commandes CLI pour tester si la fonction error_log fonctionne comme prévu. Exécuter via la CLI:
et vous devriez le trouver dans le même répertoire le fichier erreurs.journal avec spécifiée d'erreur du test. Si vous ne pouvez pas le trouver alors vous avez probablement besoin de mettre à jour votre php.paramètres ini ou corriger les droits en écriture, le processus ou le propriétaire du fichier.
bien sûr, mais si il ne sait pas qui est le propre du php.ini et il est en train de configurer un mauvais? J'ai fait la même erreur que moi et m'a pris un certain temps pour comprendre:-) au Lieu de donner des conseils sur la configuration de bien documentée du php, il doit vérifier s'il est à la modification des bon php.fichier ini.
tks pour la réponse, manque juste un point-virgule à la fin de l'erreur de test de ligne.
Corrigé, merci.
OriginalL'auteur lubosdz
Le fichier de log est probablement déjà créé par php (mod_php ou php_fpm, etc.) avec les différents utilisateurs (www-data?). Donc, si vous exécutez votre script comme tout le monde, il peut ne pas avoir accès en écriture au fichier ou n'ont même pas accès au chemin d'accès. Vous pouvez essayer de l'exécuter en tant qu'utilisateur différent
OriginalL'auteur Tomáš Fejfar