Отладка 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 остановит выполнение кода в установленных брейкпойнтах, покажет значения переменных, даст возможность выполнять код построчно и предоставит прочие прелести нормального отладчика. В общем, все по-взрослому.


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