Отладка php в NetBeans

Давно уже подумывал настроить php-шный отладчик под NetBeans, но как-то все то ли лениво, то ли руки не доходили. А ведь иногда это вещь очень нужная.

Что для этого нужно: поддержка отладки на стороне сервера — xdebug, IDE с красивым отладчиком — NetBeans (имеется по условию задачи), плагинчик для FireFox (для отладки CodeIgniter приложений).

Как оказалось настройка всего этого до неприличия элементарна.

Первое: ставим xdebug.

sudo pecl install xdebug

По инструкции полагается дописать конфиг php.ini. Но я так не люблю, поэтому создал файлик /etc/php5/conf.d/xdebug.ini вот такого содержания:

; configuration for xdebug module
zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=On

Кстати, обратите внимание, что pecl при установке говорит, что нужно добавить строку extension=xdebug.so. Это не правильно нам нужно добавить zend_extension о чем любезно сообщает php запущенный из командной строки.

Ну и вторую строку я уже добавил потом, когда понял, что remote_enable не включен.

Перезапускаем апач и проверяем установку xdebug при помощи phpinfo(). Находим там раздел xdebug. Если такого раздела нет — ищем, что пошло не так.

Теперь проверяем, что получилось в NetBeans. Жмем ctrl+F5 (это то же самое, что и Debug/Debug project). И видим, что облом:

Ясное дело, что роутер CI пугается такой ссылки: http://localhost/index.php?XDEBUG_SESSION_START=netbeans-xdebug и выдает ошибку 404. Первое, что приходит в голову научить роутер не бояться этих ссылок и на форуме CI даже есть соответствующая тема. Но ставить костыли в исходниках фреймворка не есть гуд. Тем более, что есть красивое решение.

Небольшой плагин для Fire Fox easy xDebug.

Устанавливаем его и настраиваем проект в NetBeans как написано в инструкции:

Открыть свойства проекта/Run configuration, нажать кнопку «Advanced», поставить галку «Do not open web browser». Это действительно лишнее.

После всех этих манипуляций в NetBeans снова жмем ctrl+F5, открываем FF на нужной странице, запускаем xdebug session кликом на иконке в статусной строке.

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

Добавить комментарий


XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">