PhpStormでdocker内のwebやbatchのphpをterminalから起動してデバッグしたい


はじめに

PhpStormのリモートインタープリタにdocker-composeを選んで、デバッグ環境を整えた人向けの記事です。
phpstormでphpスクリプトを実行デバッグしてみよう

GUIからdebug実行(下の虫)すると docker-compose run で実行してしまうと別コンテナになっちゃって、どうしても都合が悪い時とかありますよね。。

だから、docker-compose exec でbatchを動かしたいんだけど、どやってデバッグすんねんって困ってませんか?

また、ブラウザから実行するんじゃなくて、terminal上からcURLでデバッグしたい時どうするんじゃいと困ってませんか?

そんな悩める希少なかたにお届けします。

docker-compose exec で xdebug ON

こんな感じで -e XDEBUG_CONFIG=remote_connect_back=1をつけてやるとxdebugの受話器をあげていればbreak pointで止まるようになります。

docker-compose exec \
-e XDEBUG_CONFIG=remote_connect_back=1 \
batch php /var/app/bin/executeHoge.php 

動かない場合は、全部入りで実行してちょっとずつけずってやりましょう。

docker-compose exec \
-e XDEBUG_CONFIG="remote_host=docker.for.mac.host.internal remote_enable=1 remote_connect_back=1" \
-e PHP_IDE_CONFIG="serverName=docker" \
batch php /var/app/bin/executeHoge.php 

cURL で xdebug ON

こちらは、-b オプションでクッキーを食べさせるだけでいけるはずです。

curl -sk \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d "{\"hoge\":\"fuga\"}" \
-b XDEBUG_SESSION=PHPSTORM \
"http://localhost:10080/api/hoge"

おわりに

以上、自分用メモでした。。