Как отлаживать PHP с netbeans и Xdebug

Недавно я попытался перейти с Netbeans 6.5 после того, как он так высоко оценил обзор IDE журналом Smashing. http://www.smashingmagazine.com/2009/02/11/the-big-php-ides-test-why-use-oneand-which-to-choose/

Моя основная причина перехода с Notepad ++ заключается в том, что я хотел бы отлаживать свой код и устанавливать его.

Я выполнил инструкции о том, как установить xdebug как из поставщика http://xdebug.org/, так и на веб-сайт netbeans. http://www.netbeans.org/kb/docs/php/debugging.html#gettingReady, но безрезультатно.

Как это сделать, кто-нибудь еще получил отладку, работающую в netbeans?

(Моя настройка: Windows XP, Wamp Server 2.0, PHP 5, Netbeans 6.5.1)

Ответы

Ответ 2

Важно добавить эту строку в php.ini:

xdebug.idekey="netbeans-xdebug"

Примечание. В NetBeans перейдите в Настройки и посмотрите, где настроен файл xdebug. Найдите этот идентификатор сеанса. В моем случае это был netbeans-xdebug.

Ответ 3

hm, для меня netbeans был первым идеем, что отладка php работала из коробки.

Отображается ли xdebug в phpinfo? если он работает, он должен работать с настройками по умолчанию. единственное, что необходимо:

xdebug.remote_enable=on

Итак, если это не включено, поместите его в файл php.ini, перезапустите apache, и отладка должна работать.

Если нет, вам нужно будет предоставить больше информации для меня, чтобы помочь вам.

SY

Ответ 4

Не знаю, что xdebug дает проблемы с curl или mod_rewrite. Единственные проблемы, о которых я знаю, - это Xdebug на Vista.

Ответ 5

Вы можете посмотреть здесь: http://ruilima.com/2010/11/ambiente_de_desenvolvimento_php_netbeans_xdebug/ на португальском языке, но есть предварительно настроенная виртуальная машина с Ubuntu 10.10, netbeans, php, mysql, xdebug, готовая к использованию. взгляните

Ответ 6

Я узнал, что в Netbeans вам нужно установить путь webroot в проектах к app/webroot. Если вы выполняете эту отладку, работа выполняется безупречно.

Ответ 7

Если вы используете 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 bit. Например, загруженное вами 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 и начните снова, чтобы он.

Ответ 8

Если у вас возникла проблема, при которой Apache решает сбой при каждом запуске отладчика (это то, что у меня было и очень раздражает). Я уверен, что я снова установил xampp и переустановил xdebug. Я думаю, что проблема связана с тем, что zend-debugger настроен странно в php.ini, и я не изменяю правильный php.ini.

В конце концов после переустановки и перезагрузки я получил работу нормально.

Теперь я запускаю dev-версию Netbeans, которая отлаживает сетевую отладку с помощью xdebug, поэтому мы запускаем все это с нашего сервера разработки, и это работает.

Удачи, нет особо приличной документации о том, как настроить xdebug с помощью net beans.

Ответ 9

У меня были случайные проблемы с NetBeans и XDebug, которые были недоступны для инструкции Watch, которая не связана с отлаживаемым кодом.

В этом случае отладчик просто терпит неудачу с Socket Exception.

Удалите любые часы, если вы обнаружите, что это вызывает вашу проблему. Вообще, хотя я нашел XDebug чрезвычайно удобным!

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

Ответ 11

Ну, проступок был, забыв

[xdebug]

в качестве заголовка раздела в php-ini. И, конечно же, "запаситесь" своими вещами прямо перед началом другой секции (например, [Дата] или [iconv]), иначе вы случайно разместите их в неправильном разделе. (В комментарии djungle php.ini это происходит легко.)

Ответ 12

В моем случае это был процесс, запущенный на моей машине (Windows 7), который использовал порт 9000, уже названный aeagent.exe

Я изменил настройку php.ini на "xdebug.remote_port = 9001", сделал соответствующее изменение в netbeans, а затем перезапустил Apache. Теперь он работает.

Благодаря инструменту SysInternals TCPView.

Ответ 13

Перейдите в http://wiki.netbeans.org/HowToConfigureXDebug. Существует большой список шагов, которым вы должны следовать, что может помочь вам.

Но, скорее всего, вам просто нужна новая версия xdebug-binary. Перейдите в http://xdebug.org/wizard.php, чтобы узнать, что вам нужно, и ваша проблема может быть решена.

Ответ 14

При запуске netbeans под Ubuntu я тоже сталкивался с этой проблемой, кажется, что я пробовал все решения, найденные в Интернете, но все напрасно.

Единственное, что в конечном итоге помогло - это запустить netbeans с командой SUDO! Похоже, у обычного пользователя нет разрешения прослушивать порт 9000 (или любой другой).

sudo netbeans &

... и вуаля, я могу снова отлаживать! Может быть, это сэкономит вам день или два.

Ответ 15

Теперь он работает после тратить 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" на панели задач и "перезагрузите все службы"

Ну.. Теперь последний шаг → START NETBEANS КАК АДМИНИСТРАТОР Холли душа windows8 я тебя ненавижу: <