ハマログ

株式会社イーツー・インフォの社員ブログ

PhpStorm & Docker (for Mac)でデバッグ

前回はPhpStorm&Vagrantの組み合わせでXdebugによるデバッグを試してみました。

ただ最近自分はDocker(Docker Compose)で開発環境を構築するようになったので今回はPhpStorm&DockerでXdebugによるデバッグをやってみようと思います。

まずはDockerの設定から。

「preference」 > 「ビルド、実行、デプロイ」>「Docker」から設定画面を開き、「名前」に任意の名前を追加します。Docker for Macを使用しているので”Conect to Doker daemon with:”ではDocker for Macにチェックします。

パス・マッピングではdocker-compose.ymlでvolumesで指定したホストとアプリケーションコンテナ間とのパスの対応を設定しておきました。

次にPHPの設定を行います。

「preference」 > 「言語&フレームワーク」>「PHP」で対象プロジェクトの言語レベルを選択したのち、「CLIインタープリター」の「…」ボタンを押下すると設定ダイアログが出るので、「リモート」からDocker Composeのラジオボタンにチェックします。

「構成ファイル」ではプロジェクトで使用するDocker Composeのdocker-compose.ymlを指定し、サービスにはPHP&Apacheがインストールされたコンテナを指定しました。

そうするとやはりPhpStormがよしなにやってくれているのか、WebサーバコンテナのPHP&Xdebugを認識してくれました。すげぇ。

次はサーバの設定です。

「preference」 > 「言語&フレームワーク」>「PHP」> 「サーバ」設定を開きます。

「名前」欄に任意入力ののち、ホストに127.0.0.1、ポート(:80)を指定したのち、デバッガーとしてXdebugを選択します。

「パスマッピングを使用する」チェックボックスにチェックしたのち、ローカルOS上のプロジェクトのパスに対応する、Dockerのコンテナ上でのパスを設定していきます。

今回はdocker-compose.ymlファイルでvolumesで指定した”src”フォルダとコンテナ側”/var/www/project”ディレクトリをマッピングさせると共に、Webアプリケーションコンテナ上のドキュメントルートとなる”html”ディレクトリもマッピングしました。

デバッガの設定はVagrantの時と変わらないので割愛しますが、コンテナのphp.iniでのXdebugの設定に違いがあります。

[xdebug]
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_connect_back = Off
xdebug.remote_host = docker.for.mac.localhost
xdebug.remote_port=9001
xdebug.idekey="phpstorm"

だいたいVagrantでの設定と変わらないのですが、remote_hostにはdocker.for.mac.localhost
(Docker for Mac使用の場合)とし、xdebug.remote_connect_backはoffとしておきます。

最後に「デバッグ構成の編集」ですが、これも手順としてはVagrantの時と変わりません。

デバッグしたい箇所にブレークポイントを指定し、「実行」>「PHPデバッグ接続のリッスンを開始」でデバッグを開始します。

止まった!!

うまく使えばコード調査も少しは捗るかもしれません。

  Shin.A   2018年4月9日


関連記事

Vim Racer

エディタ論争 エンジニア界隈でエディタと言えばしばしば論争の種になるほどだが私は…

Laravelのページネーションでrel=”next”とrel=”prev”を実装する

ページネーションの実装時に、GoogleのGoogle ウェブマスターブログ 複…

Amazon Linux 2 x86_64 standard: 3.0のCodeBuild環境でPHP8.0を使う方法。

『今度の開発はPHP8.0環境にLaravel8でソース組んでるんでインフラもそ…


← 前の投稿

次の投稿 →