Подтвердить что ты не робот

Пошаговое руководство. Как выполнить Xdebug по устранению неполадок подключения к IDE клиента

ПРЕДПОСЫЛКИ

Использование Xdebug с PHP и Komodo IDE и Eclipse PDT.

Xdebug установлен на сервере и работает правильно. Это подтверждается тем, что команды кода Xdebug работают так, как ожидалось, когда они вставлены в файлы PHP на сервере.

ПРОБЛЕМА

Подключение к рабочей станции клиента не работает, и трудно определить, почему, поскольку он терпит неудачу с несколькими IDE.

Вопрос

Было бы неплохо иметь пошаговый контрольный список для устранения неполадок, когда вы знаете, что Xdebug установлен и работает на сервере, но клиент не подключается.

Может кто-нибудь помочь добавить к этому, чтобы составить исчерпывающий контрольный список устранения неполадок?

В частности, существует ли какой-либо способ, чтобы обеспечить сетевой трафик до клиента и правильно отформатирован в том, как IDE ожидает увидеть данные?

  • SSH в веб-хостинге и попытайтесь связаться с клиентом:

    • может размещать клиент клиента? (ping -c 5 xxx.xxx.xxx.xxx)
    • может разместить порт доступа 9000? (nmap -p 9000 xxx.xxx.xxx.xxx)
    • Если вышеприведенные два успеха, каков должен быть результат?
    • если вышеприведенные два не выполняются, каков следующий шаг устранения неполадок?
  • Проверьте настройки брандмауэра на базе программного обеспечения на клиенте

  • Проверить настройки iptables на хосте linux
  • Проверка аппаратного брандмауэра b/t клиента и хоста

ЗАДАЧА

Цель состоит в том, чтобы найти какое-то решение, когда человек на клиентской машине может хотя бы подтвердить, что что-то доходит до клиента, без необходимости определять, является ли IDE проблемой, поскольку IDE - это еще один уровень сложности, который может представлять проблемы.

4b9b3361

Ответ 1

Это то, что я определенно хочу включить в документацию Xdebug. Я думаю, что было бы лучше, если бы многие люди сотрудничали в этом, поэтому я создал файл в репозитории gdeub xdebug.org(https://github.com/derickr/xdebug.org/blob/master/html/docs/tutorials/troubleshooting.rest), чтобы собрать подсказки. Не стесняйтесь развиваться и расширяться!

На стороне Xdebug в будущей версии (2.2) он уже выгружает в файле xdebug.remote_log несколько дополнительных диагностических средств, например, пытался ли он подключиться и было ли соединение принято или отклонено.

Ответ 2

Вы можете использовать утилиту debugclient, чтобы определить, может ли клиент получать соединения Xdebug, как вы можете прочитать в Документация Xdebug:

Прежде чем вы начнете свой script, вам нужно сообщить своему клиенту, что он могут получать отладочные соединения, пожалуйста, обратитесь к документации конкретный клиент о том, как это сделать. Чтобы использовать связанный клиент просто запустите его после компиляции и установки. Вы можете запустить его запуск "debugclient". Если вы хотите использовать команду GDB для отладки ваши скрипты, убедитесь, что вы используете debugclient в комплекте с Xdebug 1.3, поскольку тот, который связан с Xdebug 2, работает только с набором команд DBGp. Когда запускается debugclient, он отобразит следующую информацию и затем ожидает завершения соединения сервером отладки:

Xdebug Simple DBGp client (0.10.0)
Copyright 2002-2007 by Derick Rethans.
- libedit support: enabled
Waiting for debug server to connect.

После установления соединения выводится вывод сервера отладки:

Connect
<?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1"
      xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
      fileuri="file:///home/httpd/www.xdebug.org/html/docs/index.php"
      language="PHP"
      protocol_version="1.0"
      appid="13202"
      idekey="derick">
  <engine version="2.0.0RC4-dev"><![CDATA[Xdebug]]></engine>
  <author><![CDATA[Derick Rethans]]></author>
  <url><![CDATA[http://xdebug.org]]></url>
  <copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright>
</init>
(cmd)

Дополнительную информацию о протоколе инициализации Xdebug 2 можно найти здесь. Дополнительная ссылка: Как проверить установку xdebug.
К сожалению, утилита debugclient предоставляется только в исходной форме, поэтому вам нужно самостоятельно создать исполняемый файл; это можно сделать либо в Linux (см. INSTALL), так и Windows (с Visual Studio - см. debugclient.dsp).
XAMPP включает скомпилированную версию в xampp/php/debugclient.exe.

Ответ 3

Netbeans имеет очень тщательную документацию, которая также охватывает способы устранения таких проблем:

http://wiki.netbeans.org/HowToConfigureXDebug

Ответ 4

Пользователи Windows отключили брандмауэр, а затем повторите попытку. Если это сработает, разрешите Java (TM) платформу SE бинарно через брандмауэр, затем включите ее снова. Это будет прекрасно!

Спасибо за команды, они были очень полезны при отладке.