На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Подключение Xdebug и NetBeans



В процессе разработки приходится задействовать самые разные средства. Для обратной связи (отладки) широко распространён отладчик Xdebug. Давайте рассмотрим, как его установить и подключить к Netbeans. На самом деле все просто, если знать некоторые особенности. Установка:

sudo apt install php-xdebug
Переходим в папку /usr/lib/php, находим там папки с названием из чисел и берем какую-то из них. Лично я взял (запомнил) самую последнюю - usr/lib/php/20190902/xdebug.so

Далее надо создать файл для логирования. У меня адрес - /tmp/xdebug/xdebug.log – можно любой другой. Не забудьте дать файлу права на запись, чтобы Xdebug мог писать лог.

Теперь меняем файл /etc/php/5.6/apache2/php.ini (ну или какая там у вас версия PHP и какой файл настроек задействован)

[xdebug]
zend_extension = /usr/lib/php/20190902/xdebug.so
xdebug.default_enable = On; включить xdebug по умолчанию
xdebug.var_display_max_depth = 6; глубина показа дампа массивов и объектов
xdebug.remote_enable = On; включить удаленную отладку
xdebug.remote_host = 192.168.76.6; хост для удаленной отладки
xdebug.remote_port = 9000; порт для удаленной отладки
xdebug.remote_handler = dbgp; протокол для отладки
xdebug.idekey = netbeans-xdebug; идентификатор, который будет отправлять наша IDE
xdebug.remote_autostart = 1; автоматический запуск отладки
xdebug.remote_log=/tmp/xdebug/xdebug.log; лог-файл для удалённой отладки
xdebug.profiler_enable_trigger = 1; запускать профилирование по триггеру
xdebug.profiler_enable = 0; включить профилирование
xdebug.profiler_output_dir = /tmp/xdebug/profiler/; каталог для хранения результатов профилирования
xdebug.show_local_vars = 1; отобразить все локальные переменные в случае возникновения ошибки
xdebug.overload_var_dump = 1; включает усовершенствованный var_dump
Обратите внимание на строку xdebug.remote_host = 192.168.76.6; - тут у вас будет свой адрес.

Вообще, тут указывается адрес локальной машины (127.0.0.1). Однако, если у вас настроен проброс портов или еще какие-то непонятки с сетью виртуальной машины, то прописывайте реальный путь к сайту (хосту), а не внутренний адрес.

Если Xdebug не сможет соединиться, то и напишет что-то типа этого:

Log opened at 2022-01-20 05:33:00
I: Connecting to configured address/port: 10.0.2.15:9000.
W: Creating socket for '10.0.2.15:9000', poll success, but error: Operation now in progress (29).
E: Could not connect to client. :-(
Log closed at 2022-01-31 05:33:00
Если же все в порядке, то лог будет какой-то такой:

Log opened at 2022-01-20 05:40:40
I: Connecting to configured address/port: 192.168.76.6:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///var/www/html/vtigercrm/index.php" language="PHP" xdebug:language_version="5.6.40-26+ubuntu16.04.1+deb.sury.org+1" protocol_version="1.0" appid="3438" idekey="netbeans-xdebug"><engine version="2.5.5"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2017 by Derick Rethans]]></copyright></init>
Также можно проверить и соединение внутри самого нетбинса. Сначала настроим. Выбираем «Сервис» - «Параметры» - «PHP» - «Отладка (Debugging)»

Netbeans

После включения отладки нетбинс должен показать не ожидание, а именно выполнение

Netbeans

Чтобы вставить точку останова можно использовать код:

xdebug_break();
для вывода нужных переменных:

var_dump($table_name,$fileid);
Ну это уже программирование пошло.



Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, NetBeans, отладка, Xdebug, IDE

Читайте также:




Липовый счетчик лиру: межстрочный интервал и наведение
Что такое HLR запрос


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.