ハマログ

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

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日


関連記事

CircleCI2.0でER図を出力

はじめに CIでER図の自動出力を考えていたところ、CircleCI x Sch…

Laravelのカスタムバリデーションで日付の妥当性チェック

はじめに Laravelの日付入力で入力画面が年/月/日に分割されているときに、…


← 前の投稿

次の投稿 →