{{tag>dev php}}
:TODO_DOCUPDATE:
====== A propos du débogage en PHP =======
vérifier la syntaxe d'un script depuis la ligne de commande:
php -l mon_script.php
Afficher les fichiers de configuration chargés par la CLI :
#
php --ini
Afficher les modules actifs :
php -m
Redéfinir la configuration locale dans un script
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once('problem_file.php');
# Ecrire dans le journal de log
error_log("test errors log...", 0);
Obtenir des informations sur la configuration
phpinfo();
===== Débogage avancé en CLI avec xdebug =====
Installer le module PHP xdebug :
apt install php8.2-xdebug
Modifier le fichier de configuration ''/etc/php/8.2/cli/conf.d/20-xdebug.ini''
zend_extension=xdebug.so
xdebug.mode=debug,develop
xdebug.start_with_request=trigger
xdebug.client_host=localhost
xdebug.client_port=9003
xdebug.log=/var/log/xdebug.log
xdebug.cli_color=1
xdebug.output_dir=/tmp
Vérifier que le module est chargé :
php -m | grep xdebug
php -version
PHP 8.2.28 (cli) (built: Mar 13 2025 18:21:38) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.28, Copyright (c) Zend Technologies
with Zend OPcache v8.2.28, Copyright (c), by Zend Technologies
with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans
Télécharger le client xdebug :
cd /opt
wget "https://xdebug.org/files/binaries/dbgpClient"
chmod +x ./dbgpClient
Lancer l’exécution du client, dans l’exemple ci-dessous, le message indique bien que le client attend la connexion sur le port 9003.
./dbgpClient
Xdebug Simple DBGp client (0.6.1)
Copyright 2019-2024 by Derick Rethans
Waiting for debug server to connect on port 9003.
On exécute maintenant le script en passant par le débugueur :
XDEBUG_TRIGGER=1 php /path/to/script.php
===== Références =====
* https://stackoverflow.com/questions/18660735/pdo-and-mysql-charset
* https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display
* https://stackoverflow.com/questions/3758418/numeric-values-of-error-reporting-levels
* https://stackoverflow.com/questions/19520744/what-is-the-difference-between-local-value-and-master-value
* https://www.octopuce.fr/debugger-php-en-cli-avec-xdebug-vim/
* https://www.affinityreader.com/2024/09/how-to-debug-php-applications-in.html
* https://www.ekino.fr/publications/la-magie-de-xdebug/