Удаленная отладка PHP с помощью Netbeans и XDebug - PullRequest
13 голосов
/ 22 марта 2012

Я пытаюсь использовать XDebug в следующем сценарии

  • Физический хост в Windows 7, с Netbeans 7.1.1
  • Виртуальный гость в Ubuntu, с сервером Apache и PHP5.3.10
  • код PHP моего сайта находится в общей папке в Ubuntu, в / var / www / mysite
  • код PHP доступен с моего хоста Windows, на \\ guestIP\ mysite, с разрешениями R / W
  • Сайт доступен с http://mysite.local.fr, как с хоста, так и с гостя

Я создал проект Netbeans с моего хоста Windows, указывая на \\ guestIP \ MySite.В проекте Выполнить конфигурацию у меня есть следующее:

  • Запуск от имени: Локальный веб-сервер
  • URL проекта: http://mysite.local.fr
  • Индексный файл: index.php(существует в проекте)

В расширенной конфигурации прогона:

  • Я проверил «Спрашивать каждый раз» (я также пытался использовать «Не спрашивать» и запускатьсам браузер с ключом сеанса)
  • Я попытался установить '/ var / www / mysite' - \\ GuestIP \ mysite для сопоставления (и также попытался ничего не использовать)
  • У меня естьне трогал настройки прокси

У меня есть следующее в php.ini на моей Ubuntu VM

xdebug.remote_enable = on
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = /tmp
;xdebug.remote_host=localhost,<HostIP>, mysite.local.fr
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.idekey="netbeans-xdebug"
xdebug.remote_mode=req

Ничего из этого не работает, Netbeans не останавливается ни на одной точке останова отWindows.

Отладка напрямую с моей виртуальной машины с Netbeans работает нормально.

Может кто-нибудь сказать мне, как заставить мой отладчик работать удаленно из Windows?Спасибо

Ответы [ 6 ]

15 голосов
/ 16 мая 2012

Извините, я не могу больше комментировать.@ Дэвид @ JamesB41: Я тоже искал это.Моя установка - хост Windows 7 с NetBeans 7.1 и виртуальная машина Ubuntu в VirtualBox.У меня есть проект NetBeans, настроенный как удаленный проект, загрузка и выгрузка которого осуществляется с использованием SFTP.

Для меня работает следующая настройка, просто используйте IP-адрес вашего хоста как remote_host и убедитесь, что виртуальная машина может его видеть.

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=10.217.165.193
xdebug.remote_port=9000
xdebug.remote_log="/tmp/log/xdebug.log"

NetBeans остановится на точке останова точки входа (если у вас установлен параметр в PHP-> Отладка). Но он не остановится на точках останова, созданных NetBeans, потому что он запускается из файлов виртуальной машины.Вы можете использовать xdebug_break (), и он покажет стек и переменные. Он остановится на контрольных точках NetBeans и будет выделен, если вы правильно сопоставите папки в конфигурации проекта> Запустить конфигурацию> Дополнительно.Потрясающие.Я полон.

(Конфигурация connect_back, похоже, не помогла, возможно, потому что $ _SERVER ['REMOTE_ADDR'] не заполнен.)

3 голосов
/ 09 октября 2013

Просмотрите приведенный ниже документ для удаленной отладки с использованием NetBeans.Очень полезно.http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-apache-server/

1 голос
/ 31 марта 2013

В курсе, это старое, но хорошее напоминание. Если вы используете nat в virtualbox, убедитесь, что вы перенаправили порт на порт xdebug обратно на локальный компьютер, обычно по умолчанию 9000.

0 голосов
/ 15 февраля 2017

Если все кажется правильным, но вы все еще получаете «Ожидание соединения» изнутри netbeans, вам следует попробовать в настройках php.ini

xdebug.remote_connect_back=on

, так как это позволяет соединение с ЛЮБОГО ip или посмотреть намного больше информации по вопросу http://www.devside.net/wamp-server/netbeans-waiting-for-connection-netbeans-xdebug-issue

0 голосов
/ 01 декабря 2015

Удаленная отладка с Linux + Apache + PHP + xdebug + NetBeans (SFTP)

У меня есть следующая настройка, и она работает.

Хост-компьютер (клиент)

  • Linux Debian Jessie **
  • NetBeans версии 8.0.2
  • NetBeans имеет проект, созданный как «Приложение PHP с удаленного сервера», который долженбыть отлаженным
  • NetBeans подключается к удаленному серверу с использованием SFTP
  • IP (например): 192.168.0.2

** Мне известно, что в вопросе OP упоминается WindowsНо, учитывая, что основные настройки для решения этой проблемы должны быть выполнены на ВМ, я надеюсь, что это все равно кому-нибудь поможет.

Гостевой ПК (сервер) / Виртуальная машина

  • Linux Debian Jessie
  • Apache
  • PHP 5.6
  • xdebug 2.2.5
  • IP (например): 192.168.0.1

На гостевом ПК (сервере) / виртуальной машине необходимо выполнить следующие шаги

  1. установить xdebug sudo apt-get install php5-xdebug
  2. edit /etc/php5/apache2/php.ini,

добавьте эти строки прямо перед [Date] И измените xdebug.remote_host, чтобы отразить ваш "Host PC (client)" IP:

[debug]
; Remote settings
xdebug.remote_autostart=off
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=192.168.0.2
xdebug.remote_port=9000
перезагрузите apache sudo service apache2 restart

Ссылка

Как настроить XDebug - удаленная отладка http://wiki.netbeans.org/HowToConfigureXDebug#Remote_Debuging

youнеобходимо правильно настроить свойство xdebug_remote.host на удаленной машине.IP-адрес локальной машины должен быть определен в этом свойстве.Например, вы хотите отладить свой исходный код на удаленной машине 192.168.0.1, используя Netbeans, установленный на 192.168.0.2.Вам необходимо изменить xdebug.remote_host на 192.168.0.1 на xdebug.remote_host = 192.168.0.2.Если не работает, убедитесь, что у вас настроен порт в xdebug.remote_port на обеих машинах.

0 голосов
/ 20 июня 2013

Другой вариант - настроить виртуальную машину для связи с собственным localhost: 9000 (по умолчанию для xdebug), а затем выполнить ssh с хоста на виртуальную машину и установить туннель порта для этого порта обратно на хост-машину.Затем ваш отладчик хост-машины просто подключается к localhost: 9000, и все должно работать точно так же, как если бы они работали на одной машине.

См .: Многопользовательская отладка XDebug и PHP

...