Подключение 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)»
После включения отладки нетбинс должен показать не ожидание, а именно выполнение
Чтобы вставить точку останова можно использовать код:
xdebug_break();для вывода нужных переменных:
var_dump($table_name,$fileid);Ну это уже программирование пошло.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.