Блог о программировании

Дебаг PHP на NetBeans+Denwer

 1 января 2016 г. 12:17

Сколько копьев было сломано при попытке заставить завестись нормальный дебаг PHP кода на платформе NetBeans с использованием Denwer’а. Сколько руководств было прочитано. И везде, как под копирку написано примерно одно и тоже:

Скачайте подходящий xDebug с официального сайта, если такого нет в Denwer’e;

Установите следующие параметры в файле php.ini:

zend_extension="\usr\local\php5\ext\php_xdebug-2.2.3-5.3-vc9.dll"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_mode="req"
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9000
xdebug.idekey="netbeans-xdebug"

Перезапустите apache, выведите phpinfo() и убедитесь, что теперь доступен xDebug;

Дальше следует настройка NetBeans по такому алгоритму:

Заходим в Сервис → Параметры. Переходим в меню PHP, далее вкладка «Общего назначения» и указываем путь к интерпретатору PHP (у меня такой: Z:\usr\local\php5\php.exe). Дальше переходим на вкладку «Отладка (Debugging)» и указываем:

Порт отладчика: 9000
Идентификатор сеанса: netbeans-xdebug

И типа готово...


И ведь и правда все будет работать замечательно, но только при одном условии: проект в NetBeans должен находиться в директории на виртуальном сервере. И прямо оттуда и должен запускаться проект в браузере.

А тем временем у некоторых людей и после этих настроек при запуске дебага в строке состояния NetBeans все будет висеть статус «ожидание подключения netbeans-xdebug». И здесь явно чего-то недостаточно.

А все почему? Потому что во многих случаях глупо хранить проект на локальном сервере и, соответственно, папка проекта должна находиться в другом месте. В таком случае в NetBeans активируется функция копирования файлов проекта из своей папки в папку на сервер. Еще раз, допустим, проект находится по такому пути: «C:\projects\mytestproject», и данные из этой папки автоматически подгружаются в папку на локальном сервере «Z:\home\mytestproject\www». Такая организация папок дает возможность клонировать файлы проекта хоть куда: будь то любой локальный или удаленный сервер, что упрощает жизнь.

Так вот, при таком раскладе взаимодействие NetBeans и xDebug следующее: xDebug ожидает директив на установку точек останова в папке на локальном сервере, а NetBeans ожидает подключение xDebug в папке проекта. То есть NetBeans и xDebug все еще не взаимодействуют, и работают с разными папками. И их, по сути, нужно лишь связать. А делается следующим образом: в боковой панели NetBeans нужно выбрать наш проект, который нуждается в отладке, нажать по нему правой кнопкой мыши и выбрать «Свойства». В разделе категорий выбрать «выполнить настройку», нажать кнопку «Дополнительно…» и в таблице «Отображение пути» в колонке «Путь к серверу» указать путь, в какой папке лежит проект на нашем Denwer’e, а в колонке «Путь к проекту» указать папку, где располагается наш проект.

Где корень всех зол

И все! Теперь у нас будет грамотно организовано хранение проектов независимо от веб-сервера с автоматической выгрузкой изменений кода и, при этом, возможностями отладки! Замечательно!

Читайте еще:

Горячие клавиши Netbeans

Настройка Netbeans для PHP-программиста

Теги:  php  netbeans  xdebug  отладка  php7 

Поделиться статьей

Оставить комментарий