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.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.
PQ VPS сервера в 28+ странах.