Xdebug представляет собой расширение PHP, предназначенное для отладки и профилирования PHP-скриптов. Его использование позволяет повысить эффективность разработчика за счёт ускорения процесса получения отладочной информации. Разработчик сможет быстрее определить причину ошибки, сможет быстрее понять логику работы незнакомого куска кода.

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

 

Шаг первый

Устанавливаем и включаем расширение Xdebug для PHP в соответствии с документацией.

Добавляем настройки в конфигурационный файл (xdebug.ini). Смотрим описание параметров при необходимости.

xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.profiler_enable=0
xdebug.profiler_output_dir=/tmp
xdebug.profiler_output_name="debug-cachegrind.out"
xdebug.profiler_append=1
xdebug.profiler_enable_trigger=1

 

Шаг второй

Устанавливаем расширение для браузера. Оно необязательно и нужно лишь для упрощения активации отладчика. Если не использовать расширение, понадобится вручную задать GET/POST или COOKIE параметр.

Browser debugging extension

 

Шаг третий

Настраиваем SSH-туннель к удалённому серверу с помощью командной строки на локальной машине.

ssh -R 9000:localhost:9000 @ -p 

 

Шаг четвёртый

Создаём проект в PhpStorm, если он ещё не создан. При этом необязательно выгружать на локальную машину всю кодовую базу проекта - можно загрузить только те файлы, которые нужны для отладки. Конечно, со всей кодовой базой будет гораздо удобнее.

В панели инструментов жмём на кнопку Start Listening for PHP Debug Connections, чтобы PhpStorm начал обрабатывать входящие соединения от Xdebug. Данный функционал также можно включить через главное меню Run | Start Listening for PHP Debug Connections. Повторное нажатие кнопки вернёт всё как было.

Start listening for incoming PHP debug connections

 

Шаг пятый

Задаём точку останова, активируем отладчик (с помощью параметра или расширения) и открываем в браузере страницу для отладки. Если PhpStorm смог автоматически определить соответствие файлов локального проекта с файлами на удалённом сервере, то сразу будет открыто окно отладки. В противном случае (например, если нужный файл отсутствует на локальной машине) PhpStorm предложит задать соответствие вручную, предложив наиболее подходящие варианты.

На этом настройка завершена. В заключение несколько замечаний:

  • В документации PhpStorm имеется большой раздел, посвящённый настройке функционала отладки. Он будет полезен при возникновении трудностей.
  • В PhpStorm кроме поддержки Xdebug имеется поддержка Zend Debugger.
  • Для проверки того, что SSH-туннель работает, а Xdebug присылает отладочную информацию, можно использовать клиент для командной строки. При наличии проблемы это поможет определить правильность настройки, исключая фактор IDE.
  • Если вы столкнулись с ошибкой "Cannot accept external Xdebug connection: Cannot evaluate expression 'isset($_SERVER['PHP_IDE_CONFIG'])'", то это может свидетельствовать о множестве причин. В моём случае были одновременно включены Xdebug и Zend Debugger. Отключение Zend Debugger решило проблему.

Добавить комментарий