Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
visual_studio_code [Le 09/09/2024, 12:43] krodelabestiole |
visual_studio_code [Le 06/03/2025, 21:13] (Version actuelle) 109.223.94.29 [Déboguer avec Xdebug et VSCodium (ou VSCode)] |
||
---|---|---|---|
Ligne 126: | Ligne 126: | ||
==== Déboguer avec Xdebug et VSCodium (ou VSCode) ==== | ==== Déboguer avec Xdebug et VSCodium (ou VSCode) ==== | ||
- | **Xdebug** permet de déboguer des fichiers php avec VSCodium ou VSCode. | + | **Xdebug** permet de déboguer des fichiers [[:PHP]] avec **VSCodium** ou **VSCode**. |
=== Débogage depuis un serveur web local === | === Débogage depuis un serveur web local === | ||
Ligne 133: | Ligne 133: | ||
Par contre, dans la vidéo, il ne respecte pas les droits/propriétés des fichiers/dossiers dans le dossier /var/www (voir le paragraphe "10.1 permissions" de la page [[:apache2]] ). Et cette version ne permet que déboguer depuis le serveur local. | Par contre, dans la vidéo, il ne respecte pas les droits/propriétés des fichiers/dossiers dans le dossier /var/www (voir le paragraphe "10.1 permissions" de la page [[:apache2]] ). Et cette version ne permet que déboguer depuis le serveur local. | ||
- | === Débogage sans seveur ou depuis un serveur web local - un seul fichier de configuration === | + | === Débogage sans serveur ou depuis un serveur web local - un seul fichier de configuration === |
- | 1 - Installer xdebug | + | 1 - Installer xdebug |
- | Installer Xdebug: | + | |
- | <file> sudo apt install php-xdebug </file> | + | Installer Xdebug : |
- | Vérifier la bonne installation: | + | <code>sudo apt install php-xdebug</code> |
- | <file>php -v</file> | + | Vérifier la bonne installation : |
- | donne: | + | <code> |
- | <file>gerard@gerard-ThinkCentre-M700:~$ php -v permet de voir si Xdebug est installé. | + | utilisateur@utilisateur-ThinkCentre-M700:~$ php -v |
- | PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS) | + | PHP 8.3.6 (cli) (built: Dec 2 2024 12:36:18) (NTS) |
Copyright (c) The PHP Group | Copyright (c) The PHP Group | ||
- | Zend Engine v4.1.2, Copyright (c) Zend Technologies | + | Zend Engine v4.3.6, Copyright (c) Zend Technologies |
- | with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies | + | with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies |
- | with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans | + | with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans |
- | gerard@gerard-ThinkCentre-M700:~$ | + | </code> |
- | </file> | + | <note> Ces informations permettent de voir si Xdebug est installé et de repérer la version de PHP (8.3 ci-dessus). Les lignes de commande ci-dessous seront à adapter suivant vos versions</note> |
On peut utiliser deux fichiers pour la configuration de Xdebug. Le premier pour une session "CLI" ( interface de ligne de commande - sans serveur) le deuxième pour le serveur web local: \\ | On peut utiliser deux fichiers pour la configuration de Xdebug. Le premier pour une session "CLI" ( interface de ligne de commande - sans serveur) le deuxième pour le serveur web local: \\ | ||
- | * /etc/php/8.1/cli/conf.d/20-xdebug.ini \\ | + | * ''/etc/php/8.1/cli/conf.d/20-xdebug.ini'' |
- | * /etc/php/8.1/apache2/conf.d/20-xdebug.ini \\ | + | * ''/etc/php/8.1/apache2/conf.d/20-xdebug.ini'' |
- | 2 - On va effacer ces deux fichiers et créer des liens symboliques vers le fichier ou se trouvera la configuration de xdebug. Un appel de/etc/php/8.1/cli/conf.d/20-xdebug.ini ou de /etc/php/8.1/apache2/conf.d/20-xdebug.ini nous ramènera vers le fichiers de configuration (/etc/php/8.1/mods-available/xdebug.ini).Cela permet de n'avoir qu'un seul fichier de configuration. | + | 2 - On va effacer ces deux fichiers et créer des liens symboliques vers le fichier ou se trouvera la configuration de xdebug. Un appel de ''/etc/php/8.1/cli/conf.d/20-xdebug.ini'' ou de ''/etc/php/8.1/apache2/conf.d/20-xdebug.ini'' nous ramènera vers le fichiers de configuration (''/etc/php/8.1/mods-available/xdebug.ini''). Cela permet de n'avoir qu'un seul fichier de configuration. |
- | Effacer /etc/php/8.1/cli/conf.d/20-xdebug.ini: | + | Effacer ''/etc/php/8.1/cli/conf.d/20-xdebug.ini'' : |
- | <file>sudo rm /etc/php/8.1/cli/conf.d/20-xdebug.ini</file> | + | <code>sudo rm /etc/php/8.1/cli/conf.d/20-xdebug.ini</code> |
Effacer /etc/php/8.1/apache2/conf.d/20-xdebug.ini: | Effacer /etc/php/8.1/apache2/conf.d/20-xdebug.ini: | ||
- | <file>sudo rm /etc/php/8.1/apache2/conf.d/20-xdebug.ini</file> | + | <code>sudo rm /etc/php/8.1/apache2/conf.d/20-xdebug.ini</code> |
3 - Créer le premier lien symbolique: | 3 - Créer le premier lien symbolique: | ||
- | <file>sudo ln -s /etc/php/8.1/mods-available/xdebug.ini /etc/php/8.1/cli/conf.d/20-xdebug.ini</file> | + | <code>sudo ln -s /etc/php/8.1/mods-available/xdebug.ini /etc/php/8.1/cli/conf.d/20-xdebug.ini</code> |
Puis le deuxième lien symbolique: | Puis le deuxième lien symbolique: | ||
- | <file>sudo ln -s /etc/php/8.1/mods-available/xdebug.ini /etc/php/8.1/apache2/conf.d/20-xdebug.ini</file> | + | <code>sudo ln -s /etc/php/8.1/mods-available/xdebug.ini /etc/php/8.1/apache2/conf.d/20-xdebug.ini</code> |
4 - Puis configurer l'unique fichier de configuration /etc/php/8.1/mods-available/xdebug.ini: | 4 - Puis configurer l'unique fichier de configuration /etc/php/8.1/mods-available/xdebug.ini: | ||
- | <file>zend_extension=xdebug.so | + | <code>zend_extension=xdebug.so |
xdebug.mode = develop, debug | xdebug.mode = develop, debug | ||
xdebug.start_with_request = yes | xdebug.start_with_request = yes | ||
xdebug.log = /tmp/xdebug.log | xdebug.log = /tmp/xdebug.log | ||
xdebug.client_host = localhost | xdebug.client_host = localhost | ||
- | xdebug.client_port = 9003</file> | + | xdebug.client_port = 9003</code> |
5 - Redémarrer apache2: | 5 - Redémarrer apache2: | ||
- | <file>sudo systemctl restart apache2</file> | + | <code>sudo systemctl restart apache2</code> |
- | 6 - Créer un fichier phpinfo.php dans lequel, on met: | + | 6 - Créer un fichier ''phpinfo.php'' dans lequel, on met: |
- | <file><?php | + | <code><?php |
- | phpinfo();</file> | + | phpinfo();</code> |
On place ce fichier sur le serveur local dans le dossier /var/www/html et on lance l'url [[http://localhost/phpinfo.php]] du fichier avec un navigateur web. | On place ce fichier sur le serveur local dans le dossier /var/www/html et on lance l'url [[http://localhost/phpinfo.php]] du fichier avec un navigateur web. | ||
Vérifier la bonne installation de Xdebug: | Vérifier la bonne installation de Xdebug: | ||
- | <file>This program makes use of the Zend Scripting Language Engine: | + | <code>This program makes use of the Zend Scripting Language Engine: |
Zend Engine v4.1.2, Copyright (c) Zend Technologies | Zend Engine v4.1.2, Copyright (c) Zend Technologies | ||
with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies | with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies | ||
- | with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans</file> | + | with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans</code> |
Il existe un paragraphe concernant Xdebug sur cette page ou on peut créer un fichier xdebug_infos.php dans lequel il faut insérer | Il existe un paragraphe concernant Xdebug sur cette page ou on peut créer un fichier xdebug_infos.php dans lequel il faut insérer | ||
- | <file><?php | + | <code><?php |
- | xdebug_info();</file> | + | xdebug_info();</code> |
On doit également placer ce fichier dans le dossier /var/www/html \\ | On doit également placer ce fichier dans le dossier /var/www/html \\ | ||
on lance le fichier avec l'URL [[http://localhost/xdebug_info.php]] | on lance le fichier avec l'URL [[http://localhost/xdebug_info.php]] | ||
Ligne 211: | Ligne 210: | ||
3 - avec le serveur web interne PHP: | 3 - avec le serveur web interne PHP: | ||
- Lancer le serveur PHP sur le port 8082 (par exemple) en local: | - Lancer le serveur PHP sur le port 8082 (par exemple) en local: | ||
- | <file> php -S localhost:8082</file> | + | <code> php -S localhost:8082</code> |
- Créer un fichier launch.json file si besoin (section "run and debbug" dans la partie gauche de l'interface) \\ | - Créer un fichier launch.json file si besoin (section "run and debbug" dans la partie gauche de l'interface) \\ | ||
- Démarrer l'application avec l'option "Start Debugging".\\ | - Démarrer l'application avec l'option "Start Debugging".\\ | ||
Ligne 217: | Ligne 216: | ||
- Le débogueur devrait démarrer aussitôt. | - Le débogueur devrait démarrer aussitôt. | ||
- | ==== Serveurs web internes ==== | + | === le fichier launch.json de symphony === |
- | === Serveur web interne PHP === | + | pour pouvoir déboguer Symfony, il faut utiliser le fichier ''launch.json'' suivant: |
+ | <code> | ||
+ | { | ||
+ | "version": "0.2.0", | ||
+ | "configurations": [ | ||
+ | { | ||
+ | "name": "Listen for Xdebug", | ||
+ | "type": "php", | ||
+ | "request": "launch", | ||
+ | "port": 9003, | ||
+ | "pathMappings": { | ||
+ | "nom_du_dossier_du_projet": "${workspaceFolder}" | ||
+ | }, | ||
+ | "xdebugSettings": { | ||
+ | "max_children": 512, | ||
+ | "max_data": 1024, | ||
+ | "max_depth": 5 | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ==== Serveurs web PHP ==== | ||
- | PHP dispose d'un serveur web interne. Voici un exemple de démarrage! | + | [[:PHP]] permet de lancer un [[:php#serveur|serveur web simple]]. Celui-ci peut être utilisé depuis **VScode**. |
- | <file>php -S localhost:8000</file> | + | |
- | === Extension Live Server=== | + | === Extension Live Server === |
Pour tester rapidement les fichiers [[:PHP]] sans avoir à passer par le serveur [[:LAMP]], on peut installer l'extension "Live Server" depuis VSCode ou VSCodium. | Pour tester rapidement les fichiers [[:PHP]] sans avoir à passer par le serveur [[:LAMP]], on peut installer l'extension "Live Server" depuis VSCode ou VSCodium. | ||
Ligne 232: | Ligne 253: | ||
- PHP.ini : ''/etc/php/8.1/apache2/conf.d/20-xdebug.ini'' (à adapter, éventuellement) | - PHP.ini : ''/etc/php/8.1/apache2/conf.d/20-xdebug.ini'' (à adapter, éventuellement) | ||
- Port : ''9300'' | - Port : ''9300'' | ||
+ | |||
+ | === Serveur web interne Symfony === | ||
+ | |||
+ | Le serveur PHP précédent fonctionne mais le serveur de Symfony est plus complet dans le cadre de l'utilisation de ce framework. | ||
+ | Pour le lancer: | ||
+ | <code>symfony server:start</code> | ||
+ | pour le stopper: | ||
+ | <code>symfony server:stop</code> | ||
===== Désinstallation ===== | ===== Désinstallation ===== |