2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerコンテナ内でLarvelを起動(php artisan serve)して、ローカルのPhpStormでデバッグする

Last updated at Posted at 2019-09-05

目標

  • dockerコンテナ内でLaravelを起動する。
    ※ただし、コンテナ内のLaravelソースはローカルからマウントしている状態
  • Larvelを php artisan serve --host 0.0.0.0 で起動する
  • という状態で、ローカルのPhpStormでデバッグ(ブレーク)する

環境

  • windows10
  • Docker for Windows使用
  • PhpStormのバージョンは 2019.2.1
  • PHPのバージョンは7.3.8

Docker側設定

php.iniを下記の通り設定。

  • xdebugは入っている前提。
  • 細かい原理はわからないが、xdebug.remote_autostart=1 を有効にするとダメ
  • xdebug.idekey=PHPSTORM はあってもなくても動くけど一応いれておく。。
php.ini
[xdebug]
zend_extension="xdebug.so"
xdebug.remote_enable=1
; xdebug.remote_autostart=1
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM

Laravelを php artisan serve --host 0.0.0.0 で起動する。

artisan使って起動するなよっていうツッコミはスルーする。
Nginx->php-fpm->Larvel でも多分同じなはず。。(まだ、試してないので不明

PhpStorm側設定

File > settings > Language&Frameworks > PHP > Debug で↓にする。
image.png
※チェックボックスの入り方も大事なので注意。

注意

php.ini の xdebug.remote_port=9000 と、PhpStormの設定のポートは必ず合わせる事。

実行

この状態でPHPStormでブレークを張り、リクエストを投げると1、PHPStorm に Incomming... というダイアログが表示されるので、何も変えずにAcceptすると、ブレークする。
※リクエストを投げる際には、↓をリクエストヘッダに付与すること。

Cookie: XDEBUG_SESSION=PHPSTORM

この後、File > settings > Language&Frameworks > PHP > Serversを見ると、設定が追加されている。
恐らく、デバッグ情報を送ってきてる方(つまりDocker内のLaravel(つまりServer))の情報(+ローカルファイルとのマッピング)になっている。

関連リンク

  1. DockerのLaravelのポートマッピングが、8888:8000となっているのであれば、http://localhost:8888へリクエストする

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?