Intereting Posts

Удаленная отладка PHP с помощью Netbeans и XDebug

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

  • Физический хост в Windows 7 с NetBeans 7.1.1
  • Виртуальный гость на Ubuntu с сервером Apache и PHP 5.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? благодаря

Извините, я больше не могу комментировать. @David @ JamesB41: Я тоже искал это. Моя установка – это хост Windows 7 с NetBeans 7.1 и VM 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-> Debugging). Но он не остановится на созданных NetBeans точках останова, поскольку он убегает от файлов виртуальной машины. Вы можете использовать xdebug_break (), хотя он будет показывать стек и переменные. Он остановится на контрольных точках NetBeans и выделит, если вы правильно сопоставляете папки в конфигурации проекта> «Запустить конфигурацию»> «Дополнительно». Потрясающие. Я полный.

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

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

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

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

См. Несколько пользователей. Отладка XDebug и PHP.

Отладка удаленно с помощью 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
  • апаш
  • PHP 5.6
  • xdebug 2.2.5
  • IP (например): 192.168.0.1

Следующие шаги должны быть сделаны на «гостевом компьютере (сервере) / виртуальной машине»

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

добавьте эти строки непосредственно перед [Date] и измените xdebug.remote_host чтобы отразить ваш «Host PC (клиент)» 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 
  1. перезапустить apache sudo service apache2 restart

Справка

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

вам необходимо правильно настроить свойство 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.

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

 xdebug.remote_connect_back=on 

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