Как отладить удаленный скрипт PHP, который вызывается третьим сервером - PullRequest
0 голосов
/ 01 апреля 2019

Мне нужно отладить скрипт PHP на удаленном сервере, который я не могу вызвать из моего веб-браузера. Вместо этого он вызывается сторонним сервером как веб-хук. Желательно, чтобы webhook запускал удаленный сеанс Xdebug и просматривал код в среде IDE NetBeans, которую я использую.

Я использую туннель SSH для подключения удаленного отладчика к моей машине для разработки.

Я не могу использовать переменную GET / POST / COOKIE с webhook, поэтому я установил xdebug.remote_autostart=1, чтобы, тем не менее, запустить сеанс отладки.
Я добавил пару точек останова на свою страницу и открыл ее в редакторе IDE во время запуска вызова webhook с третьего сервера.

Тем не менее сеанс отладки не запускается. Я знаю, что страница выполняется, потому что я добавил к ней несколько команд регистрации. Можно ли вообще делать то, что я хочу? Спасибо за любые подсказки и комментарии!

При ответе, пожалуйста, обратите внимание: я не приму ответ, который рекомендует записывать в файл, потому что это то, что я уже делаю. Спасибо!

Вот раздел Xdebug моего php.ini (и да, это правильный экземпляр файла php.ini):

xdebug.idekey="netbeans-xdebug"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=0
xdebug.remote_autostart=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

Вот журнал Xdebug сессии.

[21318] Log opened at 2019-04-01 19:50:38
[21318] I: Connecting to configured address/port: 127.0.0.1:9000.
[21318] I: Connected to client. :-)
[21318] -> <init xmlns="urn:debugger_protocol_v1" 
    xmlns:xdebug="https://xdebug.org/dbgp/xdebug" 
    fileuri="file:///var/www/couchback/update.php" 
    language="PHP" 
    xdebug:language_version="7.0.33-0ubuntu0.16.04.2" 
    protocol_version="1.0" 
    appid="21318" 
    idekey="netbeans-xdebug">
        <engine version="2.7.0"><![CDATA[Xdebug]]></engine>
        <author><![CDATA[Derick Rethans]]></author>
        <url><![CDATA[https://xdebug.org]]></url>
        <copyright><![CDATA[Copyright (c) 2002-2019 by Derick Rethans]]></copyright>
    </init>
[21318]
[21318] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" re
ason="ok"></response>
[21318]
[21318] Log closed at 2019-04-01 19:50:40 

Сеанс отладки запущен, но по какой-то причине в среде IDE, похоже, нет необходимости Вероятно, это из-за отсутствия idekey в URI? У меня нет возможности добавить idekey, поскольку webhook исходит от третьей стороны. Это может быть вариант, чтобы отправить webhook на прокси-сервер и переадресовать вызов с добавленным к нему idekey. Я буду рад услышать любые другие предложения, которые не так сложны.

...