Formation PUB010 : PHP, 2025 Déboguer un programme PHP

28.3 Les fichiers journaux d'un site Web


Lorsqu'une application Web est exécutée, différents acteurs peuvent écrire dans des fichiers journaux (en anglais : log files) afin d'y consigner, par exemple, les détails d'une erreur.

Dans cette fiche :

Noms de fichiers journaux

Selon les configurations des serveurs et de votre application, les fichiers journaux peuvent porter un nom du genre :

  • error_log
  • error.log
  • httpd-error.log
  • php_error_log
  • php_errors.log
  • php-fpm.error

Des exemples de chemins sont donnés plus bas.

Fichiers journaux du serveur HTTP

Les serveurs HTTP tels Apache et Nginx font partie des acteurs qui peuvent inscrire des informations dans des fichiers journaux.

Le nom et le chemin de ces fichiers journaux dépendent de l'environnement de développement ou de production utilisé.

Des exemples complets sont donnés plus bas.

Fichier journaux de PHP

Le module PHP dispose de ses propres configurations pour inscrire des informations dans des fichiers journaux.

Dans le cas où aucun chemin n'est spécifié pour le fichier journal de PHP, c'est celui du serveur HTTP qui sera utilisé.

Fichiers journaux de votre application

En plus des informations consignées automatiquement par le serveur HTTP ou par PHP, vous pouvez inscrire vos propres informations à partir d'instructions PHP dans votre application.

Par exemple, vous pourriez intercepter les erreurs de requêtes SQL et les consigner dans un fichier journal propre à votre application.

Le chemin du fichier journal de l'application dépend de la technologie utilisée pour développer le site Web.

Journalisation des erreurs sous AMPPS

Certains environnements activent la journalisation des erreurs PHP par défaut alors que d'autres ne le font pas.

Sous AMPPS, par défaut, la journalisation des erreurs PHP est activée mais il n'y a aucune configuration de fichier spécifique aux erreurs PHP.

Pour le vérifier, lancez une page Web qui fait appel à phpinfo(). Vous verrez ces lignes :

Résultat de phpinfo() sous AMPPS

error_log     no value
...
log_errors    On

La mention no value indique que c'est le fichier journal du serveur HTTP qui sera utilisé :

  • Avec AMPPS sous Windows : C:\Program Files\Ampps\apache\logs\error.log

  • Sous Mac : /Applications/AMPPS/apps/apache/logs/error_log

Journalisation des erreurs sous Devilbox

Dans un environnement Devilbox (Windows ou Mac), le fichier journal du serveur Nginx est devilbox/log/nginx-stable/monprojet-error.log.

Celui de PHP est au format devilbox/log/php-fpm-8.2/php-fpm.error.

Modifier la journalisation des erreurs PHP

Il est possible de modifier la journalisation des erreurs PHP pour un projet ou pour tous les sites qui roulent sur un serveur.

Configuration pour un site

Si la configuration doit être faite pour un site particulier, les configurations seront réalisées dans le projet à l'aide de l'instruction ini_set().

Dans un projet PHP vanille, ce sera fait dans le fichier configuration.inc.

Dans WordPress, ce sera dans le fichier wp-config.php.

Vous pouvez utiliser le chemin de votre choix, par exemple :

PHP

ini_set("log_errors", true);
ini_set("error_log", "/Applications/AMPPS/www/log/php_errors.log");

La technique sous Laravel est passablement différente. Elle est détaillée dans cette page Web : https://laravel.com/docs/master/logging

Configuration pour tous les sites

Si vous préférez modifier la configuration pour tous les sites Web, vous devrez ajouter ceci dans le fichier php.ini.

Fichier php.ini

log_errors = On
error_log = /Applications/AMPPS/www/log/php_errors.log

Après avoir redémarré le serveur, vous pouvez vous assurer que la journalisation est bien configurée en lançant une page Web qui fait appel à phpinfo().

Vous verrez alors ces lignes :

Résultat de phpinfo()

error_log     /Applications/AMPPS/www/log/php_errors.log
...
log_errors    On

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre