XDebug
Homepage: Xdebug Module for PHP
Отладчик XDebug умеет отлаживать код удаленно.
Программное окружение: Ubuntu 12.04.1 LTS; Apache 2.2.22 64-bit Prefork; PHP 5.3.10; Zend Engine v2.3.0. IDE NetBeans IDE 7.1.2
- Установим Xdebug в Linux. После установки, при проверки версии PHP - уведим строку with Xdebug v2.1.0
# aptitude install php5-xdebug # php -v PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (built: Sep 12 2012 18:59:41) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
- Перезапускаем Apache. Создаем на нашем сервере файл info.php содержащий <?php phpinfo(INFO_ALL); ?>. Запускаем в браузере файл info.php и ищем информацию о Xdebug
# service apache2 restart
- Так как в ОС может быть несколько Настройка файла php.ini для высоконагруженных сайтов. Находим в выводе файл info.php строку Loaded Configuration File, значение которой говорит какой именно php.ini используется Apache
Loaded Configuration File /etc/php5/apache2/php.ini
- В самый конец php.ini добавляем строки. Эти настройки позволят Что такое IDE интегрированная среда разработки? Список IDE NetBeans использовать Xdebug.
xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=localhost xdebug.remote_port=9000 ;xdebug.trace_format=2 ;xdebug.show_local_vars=on
- Перезапустим Apache. Xdebug готов к отладке PHP скриптов. Для этого в NetBeans нужно открыть PHP файл и нажать Ctrl+F5 для запуска Debug.
В Настройка файла php.ini для высоконагруженных сайтов включите html_errors = On иначе Apache не будет выводить красиво данные из Xdebug.
Проще всего, что бы не менять php.ini, в начало каждого тестируемого скрипта добавить строки
<?php error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('html_errors', 1);
Директивы Xdebug
- xdebug.var_display_max_depth — глубина дампа массивов и объетов
- xdebug.remote_enable — отладка по умолчанию включена
- xdebug.remote_host — хост, на который будут идти отладочные данные
- xdebug.remote_port — порт
- xdebug.remote_handler — может быть dbgp или php3. Это протокол передачи данных отладки. dbgp — более современный
- xdebug.idekey — идентификационный ключ, который будет посылать ваша IDE, для присоединения к отладочной сессии
- xdebug.remote_autostart — автоматический запуск отладки, без параметра запуска (подробнее в документации)
- xdebug.remote_log — лог отладки
- xdebug.profiler_enable_trigger — запуск профилирования по триггеру
- xdebug.profiler_enable — по умолчанию выключен
- xdebug.profiler_output_dir — папка, в которую будет сохраняться информация по профилированию (папка должна существовать, и должны быть установлены права доступа rw- )
- xdebug.show_local_vars — в случае возникновения не обрабатываемого исключения вместе с ошибкой будут выведены все локальные переменные
- xdebug.overload_var_dump — делает форматированный разноцветный var_dump.


