IntelliJ IDEA + xdebug

  1. Установка xdebug
  2. Настройка параметров xdebug
  3. Настройка ide

Установка xdebug

Рассматривается как обычно установка на linux (ubunutu). Изначально php и apache уже установлены, проверены и работают. Также для сборки xdebug могут потребоваться дополнительные зависимости, например, php5-dev.

Вначале получаем вывод phpinfo(), причем, не консольной, а той, которая отдается вебсервером. В принципе разница с консольной будет небольшая, но чтобы просто использовать “копипаст”, удобней воспользоваться сгенерированным через вебсервер html.
Далее полученный html вставляем в форму вот тут: http://xdebug.org/wizard.php и нажимаем конопку анализа.

В результате выдастся страница с иформацией по установке на вашу конкретную систему.
Вкратце: скачать архив с xdebug, распаковать, проверить еще раз командой phpize, сконфигурировать и собрать через make. Далее, полученный so модуль копируется в указанное в инструкции место.

Настройка параметров xdebug

Теперь нужно внести дополнительные настройки в php.ini. Т.к. меня интереусет использование php для веба, то и php.ini я использую, который лежит: /etc/php5/apache2/php.ini
Первый параметр добавляется из инструкций xdebug:

zend_extension = /usr/lib/php5/20100525/xdebug.so ;20100525 - зависит от версии/сборки php 

далее настройки для удаленного администрирования, порта и т.п.

xdebug.remote_enable=On ;удаленные подключения
; xdebug.remote_host="localhost" ;включается если известен ip удаленной машины, с которой запускается отладка или localhost для локальной отладки
xdebug.remote_port=9000 ; порт, который будет слушать xdebug
xdebug.remote_handler="dbgp" ;протокол передачи отладочной информации

В принципе, для отладки через IDEA/phpstorm достаточно

Насторйка ide

В последних версиях каких-то особых настроек делать не нужно, если используется порт 9000 – то он настроен по-умолчанию. Иначе нужно в Settings в поиске набрать debug и в отфильтрованном списке для php выбрать debug, найти xdebug и поменять номер порта на заведомо свободный. Конечно, чтобы не путаться, хорошо бы в php.ini такой же порт поставить в параметр xdebug.remote_port.

php_debug

Для запуска отладки нужно настроить ран-конфигурацию. Идем в Run->Edit Configurations. В появившемся окне слева нажать “+”, выбрать PHP Web Aplication, задать какое-то имя, добавить сервер. В настройке сервера, кроме url и порта нужно выбрать “Use path mappings” и в самом простом случае сопоставить локальное расположение веб приложения, например /var/www/myapp с абсолютным путем на сервере, где происходит отладка, например /var/www/username/appname

Все остальные настройки можно оставить как есть.

Осталось перед запуском отладки сделать проброс портов по ssh (Выполнять на локальной машине!):

 ssh -R 9000:localhost:9000 user@remotehost

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

Leave a Reply

Your email address will not be published. Required fields are marked *