tohokuaikiのチラシの裏

技術的ネタとか。

Vagrant上のLaravelをPhpStormでXdebugしたい

…ができない。(2019/10/10できた)

VagrantIPアドレスが192.168.56.125である。OSはDebian GNU/Linux 10

Laravel側

$ php -v
PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.0RC2, Copyright (c) 2002-2019, by Derick Rethans

で、/etc/php/7.3/cli/conf.d/20-xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=192.168.56.1
xdebug.remote_port=9002
xdebug.idekey=PHPSTORM

として、

$ ./artisan serve --host=0.0.0.0

しておく。ブラウザでアクセス時に

$ for i in 1 2 3 4 5 6 7 8 9 10 11 12; do netstat -an|grep 9002; sleep 1; done

しておくと、

tcp        0      1 192.168.56.125:54642    192.168.56.1:9002       SYN_SENT
tcp        0      1 192.168.56.125:54652    192.168.56.1:9002       SYN_SENT
tcp        0      1 192.168.56.125:54660    192.168.56.1:9002       SYN_SENT

となって、ホスト側の9002ポートにアクセスしに行っているのが分かる。

PhpStorm側

settingで、Serverはこんな感じ。LドライブはVagrantのsamba共有をネットワークドライブに割り当て。 f:id:tohokuaiki:20190910183241p:plain

Debugはこんな感じ。
f:id:tohokuaiki:20190910183413p:plain

で、Run設定はこんな感じ。 (メニュー) Run > Edit Confirugations...「+」→「PHP Remote Debug」 f:id:tohokuaiki:20190910183654p:plain

ブラウザ側

COOKIEXDEBUG_REMOTE_SESSIONを入れろって言うのと、XDEBUG_SESSIONを入れろって言うのがあって、とりあえず両方を入れてみた。
f:id:tohokuaiki:20190910183806p:plain

…んが、ブレイクポイントを設定してリロードしても何も起きず…

なんでやねん。

追記(2019.10.10)

評価期間が終わったので買うかーとライセンスを買ったらできた。なんの変更も無く…

えー。そうなの?それとも1ヶ月でアップデート来てたから再インストールしたのが原因かしら?

ちなみに、CSSとか読みこむときにいちいち止まってたと思ったら

./artisan serve で起動したやつにつなげてserver.phpの1行目で止まるのでなんぞ―と思ったら

f:id:tohokuaiki:20191011154650p:plain

が不要だった。CSSもなんもかんもserver.phpだもんね。