Php x-debug с Atom не работает

Я пытаюсь настроить php x-debug с помощью Atom. Я использую ОС High Sierra. Установил x-debug и вижу в php информацию. Также установлен пакет отладки php в атоме. conf.cson имеет:

  "php-debug":
PathMaps: [
  "remotepath;localpath"
  "localhost/opa;/Applications/XAMPP/xamppfiles/htdocs/OPA"
]
ServerAddress: "127.0.0.1"
ServerPort: 9000
currentConsoleHeight: "292px"
currentPanelMode: "side"
currentPanelWidth: "570px"

И в Php.ini

zend_extension = /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1    # Not safe for production servers
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true

Я вижу прослушивание на 127.0.0.1:9000 в Atom, но ничего не происходит, когда я загружаю веб-сайт. Точка останова никогда не попадет. Может кто-нибудь сказать мне, что я делаю неправильно здесь?

Моя информация о Php для x-debug:

Первая часть

Вторая часть


person Awais Tariq    schedule 14.11.2017    source источник
comment
1) Где находится остальная часть раздела xdebug phpinfo()? 2) Что должен сказать xdebug?   -  person LazyOne    schedule 14.11.2017
comment
Добавлена ​​оставшаяся часть phpinfo()   -  person Awais Tariq    schedule 15.11.2017
comment
Конфигурация Xdebug в порядке (ничего очевидного неправильного) ... но как насчет # 2 - журнал xdebug - он должен сообщать, что происходит, когда xdebug пытается подключиться и где. До сих пор наиболее распространенной ошибкой было бы то, что у вас также установлен php-fpm на вашем Mac ... и xdebug подключается туда (поскольку они оба используют один и тот же порт TCP 9000... Если он у вас не установлен (или вы изменили порт по умолчанию для него) .. то возможно он подключается к Атому .. но есть проблемы с сопоставлением путей?Лог должен рассказать общую картину ... так что вы можете решить, в какую сторону копать дальше.   -  person LazyOne    schedule 15.11.2017
comment
Предположим, что это не проблема php-fpm (которой у вас может не быть, поскольку вы используете XAMPP), а сопоставление путей (я сужу на основе предоставленной вами информации, и мне не нравится значение remotepath -- localhost/opa). Насколько я знаю, это должен быть полный фактический физический путь в удаленной системе, а не какой-то URL-адрес. Поскольку все это локально, вам нужно либо указать один и тот же путь для локального и удаленного... либо вообще не указывать его. Если у вас нет символических ссылок в пути... тогда вы должны указать окончательный/разрешенный путь (поскольку это то, что использует xdebug/PHP).   -  person LazyOne    schedule 15.11.2017


Ответы (1)


У меня была аналогичная проблема, в файле журнала было это:

[33824] I: Checking remote connect back address.
[33824] I: Checking header 'HTTP_X_FORWARDED_FOR'.
[33824] I: Checking header 'REMOTE_ADDR'.
[33824] I: Remote address found, connecting to [::1]:9000.
[33824] W: Creating socket for '[::1]:9000', getaddrinfo: Undefined error: 0.
[33824] E: Could not connect to client. :-(

вам нужно переключить xdebug.remote_connect_back на 0:

xdebug.remote_connect_back=0

также, чтобы получить журнал, который я разместил выше, вы можете добавить это: (соответственно отрегулируйте путь)

xdebug.remote_log=/usr/local/etc/php/7.3/xdebug.log

Итак, моя полная настройка в php.ini выглядит так:

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
xdebug.remote_log=/usr/local/etc/php/7.3/xdebug.log
person Marcin    schedule 29.06.2019