Formation PUB020 : WordPress, 2023 Le débogueur de PhpStorm

15.3 Activer Xdebug sous Devilbox


Pour que le débogueur de votre environnement de développement intégré (IDE) fonctionne, vous devez activer Xdebug dans votre environnement de travail.

Voici comment y parvenir lorsque vous travaillez avec Devilbox.

Dans l'interface graphique de Devilbox (127.0.0.1), rendez-vous dans le menu Info / PHP info pour retrouver la version de PHP utilisée.

Retrouvez le dossier qui contient les fichiers de configuration de PHP qui correspondent à la version de PHP utilisée. Par exemple, pour PHP 8.2,1, il s'agit du dossier devilbox/cfg/php-ini-8.2.

Ce dossier contient deux fichiers d'exemple. Le fichier désiré sera copié sous un autre nom dans le même dossier afin que ses configurations soient prises en compte.

Notez que le nom de ce fichier a peu d'importance, en autant qu'il se termine par .ini. Lorsque le conteneur sera créé, le contenu de ce fichier sera fusionné au fichier php.ini.

  • Attention : si le fichier devilbox-php.ini-xdebug contient une ligne qui initialise la configuration xdebug.remote_enable, c'est que ces configurations correspondent à la version 2 alors que la version actuelle est Xdebug 3. À ce moment, plutôt que de copier le fichier devilbox-php.ini-xdebug, vous devez créer un nouveau fichier vide avec un nom du genre xdebug.ini.
  • Dans le cas où le fichier devilbox-php.ini-xdebug ne contient pas la ligne qui initialise la configuration xdebug.remote_enable, vous pouvez copier le fichier sous un nouveau nom, par exemple xdebug.ini.

Au final, votre fichier doit contenir ces configurations.

Fichier xdebug.ini

xdebug.mode = debug
xdebug.client_port = 9003
xdebug.start_with_request = yes
xdebug.idekey = PHPSTORM
xdebug.log = /var/log/php/xdebug.log

Ajustements selon le système d'exploitation

Windows

Sous Windows, vous devez retrouver l'adresse IP de la carte vEthernet. Entrez ceci dans une fenêtre de commande :

Fenêtre de commadne

ipconfig

L'adresse recherchée se retrouve dans la section Carte Ethernet vEthernet vis-à-vis la ligne Adresse IPv4.

Résultat à l'écran

Carte Ethernet vEthernet (WSL) :

   Suffixe DNS propre à la connexion. . . :
   Adresse IPv6 de liaison locale. . . . .: fe80::869:7ae1:8782:ab8c%43
   Adresse IPv4. . . . . . . . . . . . . .: 172.25.16.1
   Masque de sous-réseau. . . . . . . . . : 255.255.240.0
   Passerelle par défaut. . . . . . . . . :

Vous devez ajouter ces configurations en prenant soin d'entrer votre propre adresse.

Fichier xdebug.ini

; pour Windows
xdebug.discover_client_host = 0
xdebug.client_host = 172.25.16.1

macOS

Sous macOS, vous devez créer un alias pour permettre au conteneur Docker de connaître l'adresse IP à utiliser. Ceci se fait en entrant les deux commandes suivantes dans une fenêtre Terminal1.

Terminal

sudo curl -o \
/Library/LaunchDaemons/org.devilbox.docker_10254_alias.plist \
https://raw.githubusercontent.com/devilbox/xdebug/master/osx/org.devilbox.docker_10254_alias.plist

sudo launchctl load /Library/LaunchDaemons/org.devilbox.docker_10254_alias.plist

Vous pouvez désormais entrer ces deux configurations. L'adresse IP est la même pour tous.

Fichier xdebug.ini

; pour macOS
xdebug.discover_client_host = 0
xdebug.client_host=10.254.254.254

Poursuite de la configuration pour tous les systèmes d'exploitation

Pour que les modifications soient prises en compte, vous devez détruire et recréer vos conteneurs. Vous devez vous placer dans le dossier devilbox avant de lancer ces commandes.

Terminal

docker-compose stop
docker-compose rm -f
docker-compose up

Pour vous assurer que Xdebug soit correctement chargé, affichez les informations PHP à l'aide du menu Info / PHP Info. Vous devriez voir une section sur Xdebug.

Xdebug3

Vous êtes maintenant prêts à configurer votre IDE pour qu'il puisse travailler en mode débogage : « Configurer le débogueur de PhpStorm sous Devilbox ».

Source

1. « Host address alias on MacOS - Boot persistent alias ». Devilbox. https://devilbox.readthedocs.io/en/latest/howto/xdebug/host-address-alias-an-mac.html#boot-persistent-alias

▼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