Установка и настройка xdebug с phpstorm и vagrant

Будет кратко описана установка xdebug, настройка php.ini и phpstorm, а также использование xDebug на linux в связке с phpstorm и vagrant.

Установка xDebug

Ставим xdegub на виртуальную машину, предварительно подключившись к ней по ssh через vagrant (vagrant ssh). Команда для установки xdebug:

sudo apt-get install -y php5-xdebug

При установленном xdеbug информация о нём будет присутствовать в php.ini, проверим, так ли это:

$ php -r "var_dump(phpinfo());" | grep xdebug
/etc/php5/cli/conf.d/20-xdebug.ini
xdebug
xdebug support => enabled
xdebug.auto_trace => Off => Off
xdebug.cli_color => 0 => 0
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => On => On
...

Настройка xDebug php.ini

Host, port и идентификационный номер нужно прописать одинаковые и в настройках php.ini, и в настройках phpstorm. 

sudo vim /etc/php5/cli/conf.d/20-xdebug.ini

Конфиг /etc/php5/cli/conf.d/20-xdebug.ini инклудится в php.ini. Поэтому добавляем в этот файл следующие настройки для xdebug (они будут задействованя как для php cli так и для fpm):

xdebug.remote_autostart = on
xdebug.remote_enable = on
xdebug.remote_connect_back = on

xdebug.remote_host = 192.168.15.1  
xdebug.remote_port = 9003
xdebug.remote_handler = dbgp
xdebug.idekey = wi-backend

Где:

  • xdebug.remote_autostart — самая важная строка, отвечает за autostart.
  • remote_ host — это реальный Ethernet ip вашей машины (посмотреть можно в ifconfig - vboxnet0)
  • remote_port — задаём так же как и в настройках IDE
  • xdebug.idekey — такое же название как и в IDE.

Настройка xDebug phpstorm

Открываем меню File -> Settings.

Настраиваем PHP -> Servers.

Настраиваем как на скриншоте, задавая своё имя для приложения. Там где vagrant path - указываем путь до проекта внутри виртуальной машины vagrant. Путь может как совпадать с путём на основной машине, так может и отличаться и монтироваться в другую папку.

Xdebug phpstorm настраиваем PHP -> Servers

Настраиваем DBGp proxy

Тут всё должно быть понятно, указываем IDE key и Port такие же, как задали в php.ini. В качестве Host указываем ip виртуальной машины, тот что в файле Vagrantfile.

xDebug PHPStorm настройка DBGp proxy для дебага Vagrant

Использование xDebug c PHPStorm

В IDE PHStorm выставляем breakpoints, кликая возле строчек кода. Далее дебаггер будет делать остановку на этих точках.

xDebug phpstorm расставляем breakpoints для дебага

Запустив в браузере wi-backend.local (хост на vagrant-машине), дебаггер срабатывает для него и останавливается на точках останова (breakpoints). Дебаггер срабатывает, только если он включен в IDE (см. скриншот) - Start/Stop listening for PHP Debug Connections.

То же самое c xDebug для cli.

Выполнение cli-скрипта без xDebug:

bin/cli.php test

Выполнение cli-скрипта с xDebug. Нужно передавать ENV-параметр PHP_IDE_CONFIG:

PHP_IDE_CONFIG="serverName=wi-backend.local" bin/cli.php test

В нижней части IDE PHPStorm открывается дебаггер, где видны значения всех переменных, а также, что наиболее важно, цепочки вызов с возможностью перехода к каждому вызову.

 
Поисковые запросы, по которым приходили пользователи
 
 
 
 

icon Комментарии 0

Ваш комментарий к статье.. (для авторизованных)

ctrl+enter

icon Вход в систему

зарегистрироваться
НОВЫЕ ПОЛЬЗОВАТЕЛИ