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
параметр.
Шаг третий
Настраиваем SSH-туннель к удалённому серверу с помощью командной строки на локальной машине.
ssh -R 9000:localhost:9000@ -p
Шаг четвёртый
Создаём проект в PhpStorm, если он ещё не создан. При этом необязательно выгружать на локальную машину всю кодовую базу проекта - можно загрузить только те файлы, которые нужны для отладки. Конечно, со всей кодовой базой будет гораздо удобнее.
В панели инструментов жмём на кнопку Start Listening for PHP Debug Connections, чтобы PhpStorm начал обрабатывать входящие соединения от Xdebug. Данный функционал также можно включить через главное меню Run | Start Listening for 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 решило проблему.
Добавить комментарий