Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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

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

だから、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"

おわりに

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away