Как установить xdebug php windows

Обновлено: 06.07.2024

Когда PHP и Apache установлены и работают, а phpinfo() выдаёт страницу с информацией о PHP, можно приступать к установке и конфигурации отладчика XDebug.

Для начала пара слов о самом XDebug.

Зачем нужен XDebug?

При разработке приложений на PHP, особенно когда приходится писать свою систему, а не пользоваться готовой СMS, часто возникает необходимость находить всевозможные проблемы в программе. Многие ошибки в программе ускользают даже от взгляда опытного разработчика, так что просто глядя на программу можно найти далеко не все ошибки. А когда сталкиваешься с необъяснимым поведением системы, можно потратить многие часы на поиск ошибки, не имея возможности "изнутри" взглянуть на работающую программу. Приходится захламлять код всевозможными вызовами print_r и echo, чтобы понять, что же там внутри программы происходит.

Именно заглянуть внутрь работающей программы, посмотреть переменные, переданные от клиента параметры и многое другое, нам позволяет отладчик.

Очень удивительно, но многие разработчики (даже, по их мнению, весьма опытные) удивляются, когда узнают о возможности пошаговой отладки программ на PHP. Я же предлагаю сразу установить и сконфигурировать отладчик, чтобы в дальнейшем, при возникновении проблем, сразу же воспользоваться этим инструментом, не тратя времени на поиск ошибок методом "научного тыка".

Приступаем к установке

Xdebug является модулем, подключаемым к PHP. Для начала надо определить, какая версия этого модуля нужна именно вам, ибо версий этих на сайте XDebug немало.

Для Windows и Apache нужна версия PHP X.X VC6 TS (NN bit) , где X.X - ваша версия PHP, а NN - разрядность операционной системы (32 или 64). Аккуратно найдите в списке вариантов то, что вам надо, и скачивайте, желательно самую свежую версию.

Скачав модуль XDebug, можно положить его в директорию с остальными модулями PHP. После этого надо дописать в php.ini конфигурацию, указав полный путь к модулю XDebug на вашей машине:

Обратите внимание, в зависимости от версии PHP может понадобиться вместо zend_extension_ts указывать zend_extension. Чтобы выбрать правильный вариант, можно воспользоваться помощником установки XDebug (см. ниже).

В приведённом примере XDebug сконфигурирован так, что будет при начале отладочной сессии устанавливать связь с клиентом-отладчиком по TCP localhost:9000. Параметр xdebug.collect_params=3 даёт инструкцию XDebug при выводе стека вызовов отображать значения параметров функций и методов, что даёт дополнительную информацию к размышлению при поиске ошибок.

Полный список поддерживаемых параметров и разъяснение, что для чего нужно - на странице параметров конфигурации XDebug.

Если XDebug сконфигурирован правильно, он будет выводить информацию о себе в phpinfo():


Ниже в содержимом phpinfo() будут выведены все параметры конфигурации XDebug:


Теперь, чтобы приступить непосредственно к пошаговой отладке, можно запустить отладчик-клиент, которым может быть, например, среда разработки NetBeans или Eclipse. Через связь, установленная между XDebug и средой разработки, будет идти обмен всеми жизненно важными данными, такими, как значения переменных, точки останова, стеки вызова и так далее.

Помощник по установке XDebug

На сайте XDebug есть удобный инструмент, который помогает выбрать подходящий модуль XDebug для скачивания и установки, а также показывает, как этот модуль надо подключить к PHP.

Чтобы получить подсказку по установке XDebug, надо в поле ввода скопировать весь вывод страницы phpinfo(): берём весь текст phpinfo(), нажимая Ctrl-A, Ctrl-C, и вставляем его в поле помощника XDebug - Ctrl-V. Нужен не исходный код HTML страницы phpinfo(), а именно текстовое содержимое.

В этой статье мы рассмотрим возможность подключения интерпретатора PHP, отладчика Xdebug к PhpStorm на OC Windows и использование встроенного в IDE web-сервера.

Начнем с установки отладчика Xdebug в PHP.

Установка Xdebug

Первым делом убедимся в том, что интерпретатор PHP установлен в систему и доступен, открыв командную строку и введя следующую команду: php -v

Должна появится информация о версии PHP, подобно этой:

Если этого не произошло, тогда делаем следующее:

Теперь можно снова проверить работу PHP командой php -v. Должна вывестись корректно версия PHP, как было показано выше.

Теперь можно перейти к установке отладчика Xdebug, для которого существует специальный помощник, значительно упрощающий процедуру установки. Для его использования перейдем по ссылке:

На этой странице, необходимо ввести в поле ввода информацию об установленном PHP-интерпретаторе, которая генерируется с помощью PHP-функции phpinfo(). Вводить нужно весь скопированный текст со страницы.

Или, введя в консоль команду php -i, которая генерирует информацию о PHP.

Копируем полученную информацию, нажимаем кнопку Analyse my phpinfo() output и получаем инструкцию по установке Xdebug.

В зависимости от вашей версии PHP и пути установки инструкция может отличаться от моей:

Перемещаем её в папку C:\php\ext

В файл C:\php\php.ini (если такого файла нет, ищем файл файл php.ini-development и переименовываем его в php.ini) находим секцию Dynamic Extensions и добавляем следующую строку:

Подключение интерпретатора PHP к PhpStorm

Теперь перейдем в PhpStorm и откроем настройки комбинацией клавиш Ctrl+Alt+S.

Далее, в секции Languages & Frameworks выберем пункт PHP. В этой секции необходимо назначить интерпретатор для IDE в пункте Interpreter нажав на кнопку …


В открывшемся окне, нажимаем на кнопку +, выбираем пункт Other local… в поле Name вводим любое имя для удобства дальнейшей идентификации, например: PHP 5.6.

В поле PHP executable указываем путь до интерпретатора, например: C:\php\php.exe. Обратите внимание на появившуюся версию PHP и дебагера, что свидетельствует о правильности установки.


Чтобы убедиться в том, что правильно отрабатывает подключенный интерпретатор PHP, создадим в PhpStorm новый проект, добавим к нему файл index.php и запишем в этот файл, например, функцию var_dump([ 1, 2, 3 ]) с переданным в нее массивом.

Работа с отладчиком Xdebug в PhpStorm

Прежде чем приступить к отладке PHP-скриптов с помощью Xdebug произведем необходимую настройку в файле php.ini. В секции Dynamic Extensions, после подключения расширения Xdebug, добавим следующие настройки:

Теперь зайдем в PhpStorm и откроем настройки. Перейдем в Languages & Frameworks -> PHP -> Debug. В секции Xdebug убедимся, что установлены следующие настройки:


Проверка работы отладчика Xdebug

Чтобы проверить, что все действия были проведены верно, создадим в новом проекте файл index.php и напишем следующий код:


И поставим точку остановки на строке с var_dump().

Теперь запустим отладку этого скрипта, нажав правую кнопку мыши и выбрав пункт Debug ‘index.php’.


Если все было сделано правильно, то в PhpStorm появится вывод дебага, как показано на скриншоте.

В некоторых случаях может возникнуть необходимость отладки приложений на php. Visual Studio code предоставляет такую возможность при условии установки дополнительного расширения PHP Debug (marketplace, github).

Установка PHP Debug

Для установки нажмите Ctrl+p и введите команду ext install php-debug . Нажмите на кнопку «включить», в итоге вы должны увидеть примерно следующее:

image

Установка и настройка Xdebug

PHP Debug использует для отладки Xdebug. Для настройки Xdebug пройдите по ссылке. Предполагается, что на локальной машине уже установлен и настроен сервер apache. Здесь и далее действия указаны для Windows. Можно создать файл, например, test.php содержащий:

Открыть его в браузере и скопировать содержимое страницы в диалоговое окно. Другой способ:

  • win+R ;
  • cmd + Enter ;
  • php -i > phpinfo.text ;
  • открыть любым удобным редактором phpinfo.txt и все его содержимое вставить в диалоговое окно.

Настройка Xdebug

Далее следуйте инструкциям по установке: скачайте .dll и не изменяя его имени скопируйте его в указанную папку, дополните файл php.ini указанной в руководстве строкой.

Кроме этого, добавьте нижеследующие строки. Итоговое добавление будет примерно таким:

Как вы уже, возможно догадались, в данном примере на локальной машине установлен XAMPP.

Обратите внимание на строку xdebug.remote_host=127.0.0.2 . По умолчанию Xdebug "слушает" порт 127.0.0.1. Укажите здесь, адрес отлаживаемого сайта.

Примечание: С версией Xdebug 2.5 и выше Visual Studio code не работает. Поэтому выбирайте соответствующий вашей версии php файл *.dll.

Настройка Visual Studio code

Вызовите панель отладки (1) и нажмите на иконку с маленькой шестеренкой (2).

image

В появившемся списке выберите PHP . Автоматически сформируется файл launch.json .

Настройка PHP Debug на этом окончена.

Отладка php в Visual Studio code

В данном учебном курсе рассматриваются два способа настройки среды разработки PHP в операционной системе Windows. Первый и наиболее удобный способ состоит в установке и настройке пакета AMP (*A*pache, *М*ySQL, *P*HP). В данном учебном курсе приводится процедура установки пакета XAMPP. Второй способ состоит в установке и настройке каждого компонента по отдельности.

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Пакет загрузки PHP

Версия 5. Содержится в XAMPP Windows.

Сервер базы данных

Рекомендуется использовать сервер MySQL 5.0. Содержится в XAMPP для Windows.

Отладчик PHP (не обязательно)

Требуемое программное обеспечение

Для создания, выполнения и отладки проектов PHP необходимо следующее программное обеспечение:

IDE NetBeans для PHP. Загрузку можно осуществить отсюда.

Механизм PHP. Поддерживается версия PHP5. Загрузку можно осуществить отсюда.

Отладчик PHP. IDE NetBeans для PHP позволяет использовать XDebug, но использование отладчика не является обзательным. Из соображений совместимости с PHP5 рекомендуется использовать версию XDebug 2.0 или выше.

Сервер базы данных. Существует возможность использования различных серверов базы данных, однако самым популярным из них является сервер MySQL. Загрузку можно осуществить отсюда. NOTE: Рекомендуемая версия продукта: MySQL Server 5.0. В предоставленных документах описывается работа с этой версией.

По завершении установки необходимо выполнить настройку среды в целях обеспечения правильной совместной работы всех программных компонентов.

Можно использовать пакет, содержащий требуемое программное обеспечение, или установить каждый компонент по отдельности.

Использование пакета AMP

Установка и настройка пакета XAMPP

В этом разделе приведено описание процедур загрузки, установки и настройки пакета XAMPP.

Предупреждение! НЕ используйте XAMPP 1.7.0. В этой версии имеются значительные проблемы с XDebug. Используйте версию 1.7.1 или выше, где эти неполадки устранены.

Начиная с XAMPP 1.7.2, XAMPP поставляется с PHP 5.3а не с PHP 5.2.x. IDE NetBeans для PHP версии 6.7.x не поддерживает новые функции PHP 5.3. IDE NetBeans для PHP 6.8, которая в настоящее время доступна как сборка разработки, полностью поддерживает PHP 5.3. Также обратите внимание, что установка Xdebug различается для PHP 5.2.x и PHP 5.3.

Загрузите пакет программы установки +XAMPP +. В состав XAMPP Lite не входит XDebug.

По завершении загрузки запустите файл EXE .

Можно установить сервер Apache и сервер базы данных MySQL как веб-службы. Если Apache Server и MySQL установлены как службы, то нет необходимости запускать их вручную с помощью "XAMP Control Panel". Следует учитывать, что установить и удалить эти службы можно с помощью панели управления XAMPP.

При использовании самораспаковывающегося архива после его распаковки запустите файл setup-xampp.bat для настройки компонентов пакета. Программа установки XAMPP запускает этот файл автоматически.

После настройки откройте панель управления XAMP. Эту панель можно открыть посредством запуска файла XAMPP_HOME/xampp-control.exe или с помощью значка панель управления XAMPP, автоматически размещаемого на рабочем столе. При открытии панели управления XAMPP следует учитывать, что модули, установленные как службы, уже выполняются.

*Предупреждение. *Иногда в Windows Vista не удается запустить файл xampp-control.exe . В этом случае можно запустить xampp-start.exe .

xampp control panel

Флажки "Svc" указывают на то, что модуль устанавливается как служба Windows и автоматически выполняется при запуске системы. Службы Windows устанавливаются и удаляются при установке и снятии флажка "Svc". При удалении службы Windows сам модуль не удаляется, однако необходимо запускать его вручную. Панель управления XAMPP включает в себя кнопки запуска и остановки модулей, а также открытия их консолей администратора.

Проверка установки XAMPP

xampp welcome page

xampp phpinfo

Установка и включение отладчика XDebug

Для использования отладчика XDebug необходимо настроить стек PHP. Процесс отличается, если используется XAMPP 1.7.1, который включает в себя PHP 5.2.6, или XAMPP 1.7.2, который включает в себя PHP 5.3.

Многие пользователи испытывают трудности при настройке работы XDebug в своих системах. Справочные сведения приведены на вики-страницеи на форуме пользователей редактора NetBeans PHP Editor.

XDebug на XAMPP 1.7.1 (PHP 5.2)

Необходимо скачать XDebug, поместить файл .dll в базовый каталог php и настроить php.ini для поиска и использования данного файла.

Загрузите самую последнюю, ориентированную на многопотоковое исполнение версию XDebug, совместимую с вашей версией PHP. Ссылки для загрузки перечислены в разделе "Releases". Скопируйте файл .dll в каталог XAMP_HOME/php/ext . ( XAMPP_HOME ссылается на каталог установки XAMPP или XAMPP Lite, например, C:\Program Files\xampp или C:\xampplite .)

Найдите и откройте активный файл php.ini для XAMPP. По умолчанию он находится в каталоге XAMPP_HOME/apache/bin . Подтвердите, какой файл php.ini является активным, с помощью phpinfo() и поиска загруженного файла конфигурации.

Поскольку оптимизатор Zend блокирует XDebug, оптимизатор требуется отключить. В активном файле php.ini найдите следующие строки и удалите или отметьте их как комментарии (для надежности выполните поиск и закомментируйте все свойства, связанные с Zend):

Для присоединения XDebug к механизму PHP раскомментируйте следующие строки в файлах php.ini (добавьте эти строки непосредственно в разделе [Zend]), если они отсутствуют. Добавлены дополнительные примечания.

Установите свойство xdebug.remote_enable в значение 1, а не в значение "true" или другое значение.

Убедитесь в том, что указанные пути соответствуют расположению соответствующих файлов, как это определено при установке.

Сохраните файл php.ini .

Запустите панель управления XAMPP и перезапустите сервер Apache. Дополнительные сведения о настройке XDebug приведены на вики-странице и в документации по XDebug.

Xdebug на XAMPP 1.7.2 (PHP 5.3)

XAMPP 1.7.2 поставляется вместе с соответствующим файлом Xdebug .dll. Для начала использования необходимо только настроить php.ini . Обратите внимание, что все настройки Xdebug сопровождаются поясняющим текстом.

Найдите и откройте файл XAMPP_HOME\php\php.ini для редактирования. В XAMPP 1.7.2 используется только файл php.ini

Найдите строку zend_extension = "XAMPP_HOME\php\ext\php_xdebug.dll" и удалите символ комментария.

Найдите строку xdebug.remote_host=localhost и удалите символ комментария. Измените значение параметра localhost на 127.0.0.1 .

Найдите строку xdebug.remote_enable = 0 и удалите символ комментария. Измените 0 на 1.

Найдите строку xdebug.remote_handler = "dbgp" и удалите символ комментария.

Найдите строку xdebug.remote_port = 9000 и удалите символ комментария.

Сохраните файл php.ini .

Запустите панель управления XAMPP и перезапустите сервер Apache.

Дополнительные сведения о настройке XDebug приведены на вики-странице и в документации по XDebug.

Немного о Xdebug

Основной целью расширения является максимально возможное упрощение отладки PHP-скриптов и добавление в разработку на PHP таких удобств, как точки останова, пошаговое выполнение и наблюдение за выражениями, которое мы привыкли видеть только в компилируемых языках программирования.

Помимо этого, расширение позволяет выполнять профилировку приложения и находить те части, которые замедляют его работу. Поддерживается также выполнение произвольного кода на точке останова. Xdebug стилизирует вывод ошибок, благодаря чему, читать ошибки становится гораздо удобнее. Кроме того, есть возможность самому указать, что будет выводиться при ошибке. На этом список возможностей не заканчивается, уж поверьте, у Xdebug также есть ряд других полезных при отладке функций.
В целом, расширение нужно, в первую очередь, для экономии времени разработчиков, так как позволяет быстрее локализовать ошибку в коде.

Установка Xdebug

Уже довольно давно Xdebug, как расширение для php, присутствует в репозиториях. Поэтому его установка очень проста, для этого введите в консоли следующую команду.

Внимание! Пример приведен для Linux Ubuntu и ему подобных. Команду следует выполнять с правами супер пользователя ( su , sudo ).

С установкой покончили. Перейдем к настройке.

Настройка Xdebug

Настройка расширения выполняется при помощи редактирования конфигурационных ini файлов. Тут есть два пути:
1. В php.ini создаем секцию [xdebug] и в ней задаем параметры.
2. Все параметры задаем в xdebug.ini, который хранится тут /etc/php5/conf.d/xdebug.ini
Тут решать Вам и только Вам.

После, необходимо чтобы наши изменения подтянулись.
Для этого нужно перезагрузить apache или php-fpm (в зависимости от того, что Вы используете).

Теперь проверим улучшенный var_dump:

Вы должны увидеть красивый стилизированный вывод содержимого массива.
Теперь создадим ошибку (забудем ; в конце строки)

Если по какой-то причине, это не произошло и Вы видите на экране html теги, вероятно необходимо изменить значение параметра html_errors = On; в php.ini

Настройка PhpStorm

Настройка NetBeans IDE

Устанавливаем NetBeans, если он еще не установлен. Заходим в Сервис → Параметры. Переходим в меню PHP, далее вкладка Отладка (Debugging).
И указываем следующие значения.
Порт отладчика: 9000
Идентификатор сеанса: netbeans-xdebug
Хочу отметить, что порт сеанса, как и идентификатор сеанса могу быть другими. Например, можно указать идентификатор ide-xdebug , но тогда и в конфигах Xdebug придется указать такое же значение.

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