Как отлаживать PHP с помощью netbeans и Xdebug
Вопрос
Недавно я пытался заняться Netbeans 6.5 после того, как он получил столь высокую оценку в обзоре IDE журнала Smashing. http://www.smashingmagazine.com/2009/02/11/the-big-php-ides-test-why-use-oneand-what-to-choose/
Моя основная причина перехода с Notepad++ заключается в том, что я хотел бы иметь возможность отлаживать свой код и настраивать его.
Я следовал инструкциям по установке xdebug от поставщика http://xdebug.org/ и веб-сайт NetBeans. http://www.netbeans.org/kb/docs/php/debugging.html#gettingReady но безрезультатно.
Как это делается, у кого-нибудь еще работает отладка в netbeans?
(Моя установка:Windows XP, сервер Wamp 2.0, PHP 5, Netbeans 6.5.1)
Решение 3
С тех пор я обнаружил, что WAMP при установке с Mod_rewrite и cURL не может справиться с Xdebug.
Это известная ошибка и каждый раз вылетает.
К сожалению, я тоже использую эти две библиотеки.
Другие советы
Важно добавить эту строку в php.ini:
xdebug.idekey="netbeans-xdebug"
Примечание:В NetBeans перейдите в «Настройки» и посмотрите, где настроены файлы xdebug.Найдите этот идентификатор сеанса.В моем случае это был netbeans-xdebug.
хм, для меня netbeans был первой идеей, в которой отладка php работала «из коробки».
Отображается ли xdebug в phpinfo?если да, то он должен работать с настройками по умолчанию.единственное, что нужно, это:
xdebug.remote_enable=on
Поэтому, если это не включено, поместите это в свой файл php.ini, перезапустите Apache, и отладка должна работать.
Если нет, вам придется предоставить мне дополнительную информацию, чтобы помочь вам.
си
Неизвестно, что xdebug вызывает проблемы с curl или mod_rewrite.Единственные проблемы, о которых я знаю, связаны с Xdebug в Vista.
Вы можете увидеть здесь:http://ruilima.com/2010/11/ambiente_de_desenvolvimento_php_netbeans_xdebug/ на португальском языке, но имеется предварительно настроенная виртуальная машина с Ubuntu 10.10, netbeans, php, mysql, xdebug, готовая к использованию.взглянем
Я обнаружил, что в Netbeans вам нужно установить корневой путь в проектах к app/webroot.Если вы это сделаете, отладка будет работать безупречно.
Если вы используете xampp под Windows:
Вам нужно только открыть свой php.ini файл и измените эти две строки
;xdebug.profiler_enable = 0
;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
в
xdebug.profiler_enable = 1
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
(Осторожность:Если ваша версия xampp устарела, вам необходимо загрузить ее с сайта http://xdebug.org/download.php, загрузите 32-битную версию, даже если ваша ОС 64-битная.Например.имя загруженного вами xdebug: php_xdebug-2.2.1-5.4-vc9.dll.Сначала скопируйте php_xdebug-2.2.1-5.4-vc9.dll в каталог C:\xampp\php\ext\, тогда вторая строка будет такой: zend_extension = "C:\xampp\php\ext\php_xdebug-2.2.1-5.4-vc9.dll
)
После этого остановите Apache и запустите снова, вот и все.
Если у вас возникла проблема, при которой Apache аварийно завершает работу при каждом запуске отладчика (это то, что у меня было и это очень раздражает).Я почти уверен, что переустановил xampp и перенастроил xdebug.Я думаю, проблема заключалась в том, что zend-отладчик был странно настроен в php.ini, и я не изменил правильный php.ini.
В итоге после переустановки и сброса настроек все заработало нормально.
Сейчас я запускаю версию Netbeans для разработчиков, в которой есть сетевая отладка с помощью xdebug, поэтому мы запускаем все это с нашего сервера разработки, и это работает отлично.
Удачи. Не существует какой-либо достойной документации о том, как настроить xdebug с помощью net beans.
У меня время от времени возникали проблемы с NetBeans и XDebug, которые сводились к использованию оператора Watch, который не имел отношения к отлаживаемому коду.
В этом случае отладчик просто завершает работу с ошибкой Socket Exception.
Снимите все часы, если обнаружите, что это является причиной вашей проблемы.В целом я считаю, что XDebug чрезвычайно удобен!
Однако я понимаю, что это может не иметь отношения к вашей проблеме, но об этом стоит знать.
нашел решение той же проблемы на том же сайте PHP Netbeans:xdebug останавливается при каждом включении() или требованию()
Ну, проступок был, забыв
[xdebug]
в качестве заголовка раздела в php-ini.И, конечно же, «припаркуйте» свои вещи прямо перед началом другого раздела (например,[Дата] или [значок]), иначе вы случайно поместите их не в тот раздел.(В комментарии к php.ini это происходит легко.)
В моем случае это был процесс, запущенный на моем компьютере (Windows 7), который использовал порт 9000, уже называемый aeagent.exe.
Я изменил настройку php.ini на «xdebug.remote_port=9001», внес соответствующие изменения в netbeans, а затем перезапустил Apache.Теперь это работает.
Благодаря инструменту SysInternals TCPView.
Идти к http://wiki.netbeans.org/HowToConfigureXDebug .Существует большой список шагов, которые вам следует выполнить, которые могут вам помочь.
Но скорее всего вам просто нужна новая версия xdebug-binary.Идти к http://xdebug.org/wizard.php чтобы узнать, какой двоичный файл вам нужен, и ваша проблема может быть решена.
При запуске netbeans под Ubuntu я тоже столкнулся с этой проблемой. Кажется, я перепробовал все решения, найденные в Интернете, но все напрасно.
Единственное, что наконец помогло, — это запуск netbeans с помощью команды SUDO!Похоже, у обычного пользователя не было разрешения на прослушивание порта 9000 (или любого другого).
sudo netbeans &
... и вуаля, я снова могу отлаживать!Может быть, это сэкономит вам день или два.
Теперь он работает после того, как тратить 3 часа на то, чтобы сделать работу XDebug на Windows8 с заменой WAMP 2.2, заменяя оригинальные линии ниже [xdebug] следующим образом
zend_extension = "c:/wamp/bin/php/php5.3.13/zend_ext/php_xdebug-2.2.0-5.3-vc9.dll"
;make sure path of your own php_xdebug, dll version may vary.
[xdebug]
xdebug.remote_enable = on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
;recheck your port number in netbeans [Tools=>options=>php=>debugging there it is: debugging port]
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
Теперь нажмите значок Wamp на панели задач и «перезапустите все службы».
Ну, теперь последний шаг >> запустить NetBeans как администратор Holly Soul of Windows8 Я ненавижу вас:
Ознакомьтесь с приведенным ниже документом для удаленной отладки с помощью NetBeans.http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-apache-server/