Je passe quelques heures à configurer mon IDE pour déboguer PHP avec Eclipse et xdebug .. Tout va bien à l'exception du point d'arrêt que j'ai défini sur Eclipse. Si je double-clique sur une ligne pour ajouter un point d'arrêt, le débogueur souhaite que pas s'arrête .. Si vous ajoutez la ligne xdebug_break (), le débogueur s'arrête bien sur la ligne ...
C'est peut-être un problème de configuration. Quelqu'un pourrait-il m'aider?
PHP.ini
[xdebug]
xdebug.remote_enable=1
xdebug.remote_Host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "c:/temp"
xdebug.collect_params = 4
xdebug.collect_return = on
xdebug.collect_vars = on
xdebug.show_local_vars = 1
Si xdebug ne vous arrêtez pas dans une partie de votre code, ajoutez xdebug_break()
à cette partie du code.
Plusieurs problèmes semblent être à l'origine de ce problème. Dans mon cas, c’est le fait que j’ai pensé que j’avais besoin de définir un mappage de chemin.
Les paramètres trouvés sousrightclick-project->properties->PHP Debug
et alorsserver->edit->path mapping
avaient tort.
J'avais manuellement ajouté quelque chose qui me semblait correct, mais Eclipse peut le faire tout seul. En supprimant le mappage, cela a fonctionné.
J'ai eu un problème similaire avec Eclipse PDT et Xdebug. La cause était qu'Eclipse écoutait via IPv6 mais Xdebug a tenté de se connecter via IPv4:
chriki@machine:~$ netstat -an | grep 9000
tcp6 0 0 :::9000 :::* LISTEN
Xdebug ne semble pas prendre en charge IPv6 , pour le moment.
Après avoir ajouté la ligne
-Djava.net.preferIPv4Stack=true
après la ligne -vmargs
dans mon fichier Eclipse.ini
, Eclipse a commencé à écouter via IPv4:
chriki@machine:~$ netstat -an | grep 9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
Le débogage fonctionne maintenant parfaitement.
Je me suis résolu le problème.
Sur mon php.ini, j'ai ajouté le xdebug en tant qu'extension au lieu d'un zend_extension.
php.ini
zend_extension=C:\EasyPHP-5.3.3\php\ext\php_xdebug.dll
Remarque: le chemin doit être le chemin complet au lieu d'un chemin relatif.
Le débogueur fonctionne très bien. Délicieux!
J'avais le même problème, PDT allait démarrer la session de débogage, même en se brisant sur la première ligne du script et en autorisant la marche à partir de là, mais il serait heureux de passer en revue tous les points d'arrêt manuels définis si j'avais cliqué sur Reprendre. Après avoir bidouillé avec elle et lu un tas d'autres réponses, je l'ai corrigée.
J'avais essayé de configurer une carte de chemins (dans la configuration du serveur PHP) car mon chemin de projet et celui du serveur Web étaient différents, mais cela ne fonctionnait pas pour une raison quelconque. J'ai donc fini par ajouter un alias au Apache config pour correspondre à l'emplacement PDT demandait. Cependant, je n'avais pas supprimé ce paramètre de carte de chemin. Lorsque j'ai supprimé la carte de chemin, les points d'arrêt ont commencé à fonctionner!
Probablement un symptôme de quelque chose d'autre qui ne fonctionne pas correctement (le paramètre de mappage de chemin), mais les points d'arrêt et le débogage fonctionnent tous pour moi maintenant :)
J'ai eu le même problème. La solution consiste à ouvrir le fichier correct et à y ajouter un point d'arrêt.
Mon serveur local est sur mon lecteur virtuel Z: (j'utilise denwer au lieu de WAMP). Le lecteur Z pointe vers mon dossier D:/webserver. Je peux donc ouvrir mon fichier en tant que 1) Z: /monprojet/script.php et en tant que 2) D: /webserver/myproject/script.php
Pour certaines raisons, le débogueur s’arrête sur les points d’arrêt uniquement dans le fichier Z ouvert: /myproject/script.php file.
Comment tester ma solution ??? Faire ensuite:
xdebug_break()
à n'importe quelle ligne et sauvegardez le fichierDans mon cas, après que le processus de débogage ait commencé, mon phpDesigner IDE ouvre le fichier correct dans IDE et s'arrête à la ligne xdebug_break (). Donc, dans ce nouveau fichier ouvert, vous pouvez ajouter des points d'arrêt et ils fonctionneront. Utilisez le fichier ouvert pour le débogage.
Ce problème est apparu après avoir déplacé certains de mes dossiers de projet locaux. Xdebugger pouvait se casser au début du fichier, mais le reste de mes points d'arrêt serait ignoré.
Si vous utilisez Netbeans, vérifiez que votre URL de projet (Propriétés du projet -> Exécuter la configuration) pointe vers le bon emplacement. Lorsque l'URL du projet pointe vers le bon dossier, les points d'arrêt commencent à fonctionner comme prévu.
Cela me fait chier depuis environ 3 heures, ça vient de s'arranger. Alors, avant de vous lancer une arme à la tête, essayez ceci. Lorsque Eclipse démarre, choisissez un nouvel espace de travail et configurez votre projet à nouveau!
Après avoir fait cela, mes points d'arrêt ont encore été touchés! Mes points d'arrêt fonctionnaient bien, puis tout d'un coup, ils ont cessé de fonctionner. J'ai essayé:
supprimer tous les points de rupture
projet de nettoyage
réinstaller Eclipse
Aucune de ce qui précède n'a fonctionné pour moi!
BTW j'utilise la fenêtre 7.
J'espère que cette information sauve la vie de quelqu'un!
BTW: voici les étapes à suivre pour installer centos 7 avec xdebug et vmwere, avec un client Windows 7 avec Eclipse:
télécharger vmwere
téléchargez et installez vmwere avec: CentOS-7-x86_64-Everything-1511.iso
désactiver le pare-feu
systemctl désactiver pare-feu
systemctl stop firewalld
statut de systemctl
se connecter via ftp
ifconfig pour savoir Ip
ifconfig
eno16777736: drapeaux = 4163 mtu 1500
masque de réseau inet 192.168.170.128 255.255.255.0 diffusé 192.168.170.255
inet6 fe80 :: 20c: 29ff: fec4: b8ca prefixlen 64 scopeid 0x20
éther 00: 0c: 29: c4: b8: ca txqueuelen 1000 (Ethernet)
Paquets RX 254 octets 20919 (20.4 Ko)
Erreurs RX 0 abandonné 0 dépassements 0 image 0
Paquets TX 95 octets 10225 (9.9 Ko)
Erreurs TX 0 omis 0 dépassements 0 transporteur 0 collisions 0
192.168.170.128 est l'ip
rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY *
miam-y installer epel-release
miam-y installer mariadb-server mariadb
systemctl start mariadb.service
systemctl activer mariadb.service
mysql_secure_installation
miam-y installer httpd
systemctl start httpd.service
systemctl activer httpd.service
miam-y installer php
service httpd restart
miam-y installer php-mysql
miam-y installer php-Gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring
php-snmp php-soap curl curl-devel
service httpd restart
yum installe phpMyAdmin
sur les fenêtres ouvertes cmd, tapez ipconfig
trouver
Adaptateur Ethernet VMware Network Adapter VMnet8:
Connection-specific DNS Suffix . : localdomain
Link-local IPv6 Address . . . . . : fe80::94b8:9e5c:c772:3d47%19
IPv4 Address. . . . . . . . . . . : 192.168.170.1 [ this is the widnows ip to allow ]
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway .
dans /etc/httpd/conf.d/phpMyAdmin.conf, changez:
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
à:
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip [ WINDOWS IP TO ALLOW GOES HERE ]
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from [ WINDOWS IP TO ALLOW GOES HERE ]
Allow from ::1
</IfModule>
service httpd restart
change $ cfg ['Servers'] [$ i] ['auth_type'] = 'cookie'; to $ cfg ['Servers'] [$ i] ['auth_type'] = 'http';
service httpd restart
/ etc/selinux/config change
Ce fichier contrôle l'état de SELinux sur le système.
SELINUX = peut prendre l'une de ces trois valeurs:
faire respecter - la politique de sécurité de SELinux est appliquée.
permissive - SELinux imprime des avertissements au lieu de les forcer.
disabled - Aucune règle SELinux n'est chargée.
SELINUX = application
SELINUXTYPE = peut prendre l'une des deux valeurs suivantes:
ciblé - les processus ciblés sont protégés,
minimum - Modification de la politique ciblée. Seuls les processus sélectionnés sont protégés par .
mls - Protection à plusieurs niveaux de sécurité.
SELINUXTYPE = ciblé
à
Ce fichier contrôle l'état de SELinux sur le système.
SELINUX = peut prendre l'une de ces trois valeurs:
faire respecter - la politique de sécurité de SELinux est appliquée.
permissive - SELinux imprime des avertissements au lieu de les forcer.
disabled - Aucune règle SELinux n'est chargée.
SELINUX = désactivé
SELINUXTYPE = peut prendre l'une des deux valeurs suivantes:
ciblé - les processus ciblés sont protégés,
minimum - Modification de la politique ciblée. Seuls les processus sélectionnés sont protégés par .
mls - Protection à plusieurs niveaux de sécurité.
SELINUXTYPE = ciblé
redémarrer les centos
DANS WINDOWS POINT NAVIGATEUR À: http://192.168.170.128/phpmyadmin , devrait être tout bon
copier le site Web à:/var/www/html/[NOM DU SITE WEB]
chmod -R 777 html
dans etc/httpd/add (cela permet aux permaliens de travailler avec le nom du post)
Options FollowSymLinks
AllowOverride All
Ordre permettre, refuser
Autoriser de tous
miam installer php-devel (pour autoriser pipsize)
faire un fichier php avec: et copier à la racine du site web le lancer et copier le HTML dans https://xdebug.org/wizard.php puis cliquer sur le bouton de source d'analyse
https://xdebug.org/wizard.php donnera des instructions comme celle-ci: (suivez-les)
...... Télécharger xdebug-2.4.1.tgz
Décompressez le fichier téléchargé avec tar -xvzf xdebug-2.4.1.tgz
Exécuter: cd xdebug-2.4.1
Exécuter: phpize (voir la FAQ si vous n'avez pas phpize.
Exécuter: ./configure
Run: make
Exécuter: cp modules/xdebug.so/usr/lib64/php/modules
Éditez /etc/php.ini et ajoutez les lignes
zend_extension = /usr/lib64/php/modules/xdebug.so
xdebug.remote_enable = On
xdebug.remote_Host = 192.168.170.1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
..... service httpd restart
lancez le fichier et vous devriez voir une section XDebug, si le serveur est prêt à fonctionner!
Télécharger Eclipse Neon
Fichier> Ouvrir des projets à partir du système de fichiers
Terminer (et attendre)
Préférences de la fenêtre> php> serveurs> nouveau
Onglet Serveur
Nom du serveur [tout ce que vous aimez]
URL de base [IP ou nom de votre serveur]
Document Root [l'emplacement sur votre disque dur où tout le code est, doit être identique à ce que vous avez sur le serveur]
Onglet Débogueur
Debugger: Xdebug
port: 9000
Onglet Mappage de serveur (cliquez sur Ajouter)
Chemin sur le serveur: [le chemin complet de votre site Web] EG:/var/www/html/website
Chemin dans l'espace de travail [recherchez le projet que vous avez ajouté avec: Ouvrir des projets à partir du système de fichiers]
allez à la fenêtre principale d'Eclipse> cliquez sur la flèche déroulante en regard de l'icône de bug> déboguer les configerations
Onglet Serveur
Fichier: [Ce devrait être le premier fichier de votre projet local à être exécuté. À l'ouverture de l'application]
URL: désactiver la génération automatique: décocher la case
Première zone de texte de l'URL: [L'adresse IP ou le nom de votre serveur sur lequel votre site Web est en cours d'exécution]
Deuxième zone de texte de l'URL: [Si votre site Web ne se trouve pas dans le répertoire racine, le répertoire où il se trouve se trouve ici]
Onglet commun
Afficher dans le menu Favoris
fenêtre> préspective> ouverte préspective> php
Mettez un point de rupture dans le fichier php qui est frappé en premier (en cliquant sur la barre de défilement verticale sur une ligne de code)
Enfin, cliquez sur l'icône de débogage dans Eclipse, et votre point d'arrêt devrait être touché (la ligne de code avec le point d'arrêt dessus deviendra verte)
Ouvrez Centos 7 sur Vemware au monde entier
Changer le paramètre réseau de VMeere en ponté
Ajouter une règle au routeur pour le transfert de tout trafic vers l'adresse IP de vmweare sur laquelle cetnos est exécuté
Ajouter une règle entrante au pare-feu de Windows permettant à http
PS: Je n'ai pas le temps de vérifier mon joueur et mes expériences
Réponse rapide: supprimez tous les espaces sur le chemin de votre script php.
Le contexte:
Il existe un bogue sur la version 3.7.0 du plug-in PDT qui empêche le débogueur de s’arrêter aux points d’arrêt.
Et cela se produit lorsque le chemin de votre script contient un espace!
Cela a été corrigé mais je suppose que la version cible, 4.0.0, n’a pas encore été publiée.
Le commentaire qui a sauvé ma journée est à https://bugs.Eclipse.org/bugs/show_bug.cgi?id=489646#c7 ("Commentaire 7").
J'ai eu le même problème pendant des jours (!) Depuis que je me suis rendu compte que le problème était le plus trivial.
Configuration:
/etc/php5/Apache2/php.ini
[XDebug]
zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_Host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_output_dir=/tmp
Le débogueur ne s’est pas arrêté aux points d’arrêt ni à xdebug_break();
... cela était dû aux autorisations /var/www
du dossier Apache DocumentRoot par défaut} _
Je l'ai changé en /home/user/Documents/www
.
J'avais le même problème avec Eclipse-php-oxygen Le problème repose sur Eclipse. J'ai installé Eclipse-php-luna-SR2-win32 et testé xdebug et tout fonctionne correctement.
Installé: Xampp-win32-7.0.30-0-VC14-installer.exe Java 8 Mise à jour 171
[XDebug]
zend_extension = C:\xampp\php\ext\php_xdebug-2.6.0-7.0-vc14.dll
;zend_extension = C:\xampp\php\ext\php_xdebug-2.5.5-7.0-vc14.dll
;zend_extension = "c:\xampp\php\ext\php_xdebug-2.6.0-7.2-vc15.dll"
xdebug.remote_autostart = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_Host = "127.0.0.1"
xdebug.remote_log = "c:\xampp\tmp\xdebug.txt"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "c:\xampp\tmp"
;36000 = 10h
xdebug.remote_cookie_expire_time = 36000
J'espère que cela aidera.
Br, ALi
Si vous utilisez Eclipse, il se peut que le débogueur configuré pour un lancement spécifique (voir l’onglet Débogueur) soit le débogueur Zend, et PAS XDebug. Corrigez votre lancement de débogage et réessayez. Cela a résolu le problème pour moi.
Malheureusement, je ne peux pas poster la capture d'écran. Toutefois, dans Eclipse, vous pouvez accéder à: Configurations de débogage> PHP Application Web>, puis sélectionnez votre lancement> Onglet Débogueur> utilisez la liste déroulante Débogueur de serveur pour sélectionner XDebug> appuyez sur le bouton Appliquer. et réessayez.
J'ai eu le même problème et l'une des deux choses résolues ...
J'ai supprimé une définition de zend_extension en double dans mon fichier PHP.ini
ou plus probablement, je viens de mettre à niveau vers la dernière version de xdebug à partir d’ici: http://xdebug.org/download.php
(J'utilisais xdebug fourni avec XAMPP v1.7.1)
CECI A COMMENCÉ ENCORE ... essayé toutes les différentes versions de dll xdebug, etc ... s’est avéré que ce qui ne fonctionnait pas, c’était de laisser la fenêtre Expressions ouverte ... alors gardez-la fermée lorsque vous déboguez des choses ... vous pouvez ajoutez une veille temporairement, puis fermez la fenêtre Expressions avant de "passer" ...
faux...
Pour ne mentionner que la solution simple pour moi, lorsque mon xdebug nouvellement installé et configuré ne fonctionnait pas avec PhpStorm: j'ai simplement oublié de redémarrer Apache après la mise à jour du fichier php.ini.
Je suis sur Windows, Eclipse Oxygen. Après avoir passé pas mal de temps, j'ai découvert que la simple suppression et la reconstitution de Debug Configuration
aidaient.
J'ajoute le même problème sur la version 20 de Fedora: Heisenbug, php-ZendFramework2-Debug-2.3.9-1.fc20.noarch, php-pecl-xdebug-2.2.7-1.fc20.i686 et la version Eclipse: Mars.1 Libération (4.5.1). J'ai utilisé les réponses précédentes, découvert qu'Eclipse utilisait ipv6, que j'ai modifié comme décrit dans Eclipse.ini pour -Djava.net.preferIPv4Stack=true
. Idem pour xdebug.ini, et ne fonctionne toujours pas, jusqu'à ce que j'ai découvert que j'avais 2 fichiers xdebug.ini, un dans /etc/php-zts.d/
qui est le mauvais et un dans /etc/php.d/
qui est celui utilisé par Apache. Je l'ai modifié pour inclure le paramètre suivant
; Enable xdebug extension module
zend_extension=xdebug.so
xdebug.remote_enable=on
xdebug.remote_Host="127.0.0.1"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.remote_autostart=1
xdebug.idekey=
redémarré le réseau Sudo service network restart
et maintenant les points d'arrêt sont détectés et je peux déboguer comme prévu.
Pour moi, le problème semblait php 7.2 avec Xdebug v2.7.0beta2-dev, notez la partie beta . Cela a été installé en utilisant puphpet.com. J'ai essayé php 7.1 et le problème a disparu. Cela m'a pris des heures pour trouver ça!
1- Vérifiez la configuration de xdebug sur php.ini
2- Eclipse-> projet-> propriétés-> phpDebug -> Activer le paramètre spécifique au projet
phpDebugger-> configurattion-> port ou widndow-> préférence-> php-> debug-> installedDebuggers
3-widndow-> préférence-> php->
Interprète-> version Exécutables-> chemin d'accès à php-win.exe
point: pour chaque bibliothèque de débogage (xdebug, zend_debugger, ...), vous pouvez avoir un exécutable php par défaut.
4-votre serveur d'applications fonctionne sur un port différent avec 80. Widndow-> préférence-> php -> Serveurs PHP
J'ai aussi corrigé cela. Utiliser zend_extension au lieu de l'extension.
zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"