PHP CLI debug в Vagrant из PHPStorm

Понадобилась мне отладка консольных скриптов в витуальной машине (далее ВМ) Vargant`а. Самый лёгкий путь — подражание, потому сразу же пошёл гуглить.Нашёл статью, и… она меня взбесила. Это длиннющая простыня соплей, как заставить прикрутить Vagrant к PHPStorm`у, засетапить целую колоду окошек для непонятно чего. Сколько усилий нужно для этого приложить, сколько кликов мышкой сделать. Вспомнил как я поднимал отладку на удалённом дев-сервере, и решил поступить так же по-джедайски. Далее короткая хаутушка по настройке отладки CLI PHP  скриптов в Vagrant`е из PHPStom`а.

HOST

Смотрим на сетевые интерфейсы:

ifconfig
...
vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:192.168.50.1 Bcast:192.168.50.255 Mask:255.255.255.0
inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:1948 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:369145 (369.1 KB)

Тут нас интересует только виртуальный адаптер, и только его IP (у меня 192.168.50.1).

Vagrant

Ставим Xdebug, если еще не установлен:

sudo apt install php5-xdebug

Создаём конфиг xdebug.ini примерно в /etc/php/5.6/mods-available/

sudo touch /etc/php/5.6/mods-available/xdebug.ini

И говорим ему такой контент:

sudo vim /etc/php/5.6/mods-available/xdebug.ini

zend_extension=xdebug.so
xdebug.default_enable = On
xdebug.var_display_max_depth=6
xdebug.remote_enable=on
xdebug.remote_host=192.168.50.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=0
xdebug.remote_connect_back=1
xdebug.remote_log=/tmp/xdebug.log
xdebug.profiler_enable_trigger=0
xdebug.profiler_enable=0
xdebug.profiler_output_dir=/tmp/profiler
xdebug.show_local_vars=1
xdebug.overload_var_dump=1

IP адрес ставим тот, что торчит на хосте, который мы запомнили (у меня 192.168.50.1). Значения xdebug.remote_port и xdebug.idekey пригодятся в дальнейшем, запоминаем их.

В консоли на ВМ говорим переменную с именем сессии
export XDEBUG_CONFIG="idekey=PHPSTORM"
Здесь idekey это xdebug.idekey из конфига xdebug.ini.

PHPSTORM

Идём в Run -> Edit configuration -> Add new configuration -> PHP remote debug. Добавляем сервер Servers -> add:
Name — назвать, чтоб было понятно что это и куда это;
Host — IP адрес виртуального интерфейса нашего хоста (у меня 192.168.50.1);
Port — значение из xdebug.remote_port;
File/Directory — рут проекта на хосте (локально);
Absolute path on the server — рут проекта на ВМ.

Сохраняем, и настраиваем непосредственно Remote debug:

Ide key (session id) — то, что является idekey, который в xdebug.idekey, который в xdebug.ini на ВМ (у меня PHPSTORM).

Сохраняем. Стартуем отладку в PHPStorm`е, ставим брейкпоинт, запускаем CLI PHP скрипт. Радуемся.