Как мога да свържа Xdebug 3 към PhpStorm на Windows 10?

Опитвам се да свържа PhpStorm и да отстранявам грешки в PHP скриптове/уеб страници с Xdebug, нещо, което съм правил няколко пъти.

Това е моят php.ini файл (интересното):

[xdebug]
zend_extension=C:\xampp\php\ext\php_xdebug.dll
xdebug.remote_enable=1
xdebug.remote_port=10000
xdebug.remote_mode=req

Зададох множество точки на прекъсване и извиках xdebug_break() на моя индекс, но изпълнението на кода не спира при тях.

Това е резултатът от скрипта за валидиране на PhpStorm за Xdebug:
Това е изходният скрипт за проверка на PhpStorm за Xdebug

Резултатът от netstat, който показва, че PhpStorm слуша на порт 10000:
Резултатът от netstat, който показва, че PhpStorm слуша на порт 10000


person granitba    schedule 01.12.2020    source източник
comment
Използвате ли отделен сайт. което означава, че имате отделен преден и отделен API за почивка? Или използвате стария начин за изобразяване от страна на сървъра?   -  person vlad katz    schedule 01.12.2020
comment
Вие използвате Xdebug v3 ... но все още използвате Xdebug v2 конфигурационни параметри. Просто използвайте правилни имена на параметри v3: xdebug.org/docs/upgrade_guide   -  person LazyOne    schedule 01.12.2020
comment
*...и извика xdebug_break() в моя индекс...` Моля, обърнете внимание, че xdebug_break() работи по различен начин в Xdebug 3: сега той просто действа като точка на прекъсване и НЯМА да инициира сесията за отстраняване на грешки, ако вече не е била там.   -  person LazyOne    schedule 01.12.2020
comment
@LazyOne Да, сесията за отстраняване на грешки се инициира от самия phpstorm   -  person granitba    schedule 01.12.2020
comment
Освен това първоначално опитах с конфигурационните параметри v2, но PhpStorm не го валидираше и не работеше.   -  person granitba    schedule 01.12.2020
comment
Между другото: stackoverflow.com/a/65091404/783119 -- Xdebug 3 ще се поддържа напълно само в следващата версия 2020.3. Отстраняването на грешки все още работи добре в 2020.2 (тествах сам, на Windows с PHP 7.4 и 8.0).. но IDE ще се опита да използва параметрите на Xdebug 2 и следователно тези предупреждения от Xdebug.   -  person LazyOne    schedule 01.12.2020
comment
@vladkatz Не виждам как това е уместно, но да, това е наследен код, така че не използвам отделен API.   -  person granitba    schedule 01.12.2020
comment
@granitba Затова използвайте имена на параметри на Xdebug v3 и вижте какво има да каже IDE (като вземете под внимание моите предишни коментари).   -  person LazyOne    schedule 01.12.2020
comment
@LazyOne Исках да кажа, че опитах с v3 параметри, но не го тествах, когато видях, че не се валидира. С имена на параметри v3 мога да използвам точки на прекъсване! Не знам обаче дали други функции като профилиране ще работят   -  person granitba    schedule 01.12.2020
comment
@grantiba това е уместно, тъй като xdebug използва бисквитки и ако използвате разделени отпред и отзад, гърбът няма да разпознае бисквитката, тъй като е междудомейн. имаше този проблем преди   -  person vlad katz    schedule 02.12.2020
comment
@vladkatz А, добре, не разбрах това. Във всеки случай сега го накарах да работи, поне точките на прекъсване.   -  person granitba    schedule 02.12.2020


Отговори (2)


Променете редовете в php.ini на

xdebug.mode=debug

и настройте порта на PhpStorm да слуша на 9003 вместо на 9000.

В xdebug v3 портът на xdebug по подразбиране беше променен на 9003: https://xdebug.org/docs/upgrade_guide#Step-Debugging

person Rijad Morina    schedule 01.12.2020

промяна

от

xdebug.remote_enable=1
xdebug.remote_port=10000
xdebug.remote_mode=req

в

xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=10000
person WebEXP0528    schedule 02.12.2020