BackEnd

Laradock環境にPHPStormからXdebugする

投稿日:

はじめに

こんにちは。カイザーです。XdebugをLaradockで使用する方法について、まとまった記事が少なかったため、まとめてみることにしました。

Laradock側の設定変更

まず、Laradock側でXdebugを起動させるため、コンテナ内の設定ファイルを変更します。

xdebug.iniファイル

Laradock内の「php-fpm/xdebug.ini」「workspace/xdebug.ini」を修正します。

.env

Laradockの.envファイルを修正し、Xdebugを有効化します。

コンテナの再構築

設定できたら、コンテナを再構築します。

PHPStormの設定

次に、PHPStorm側でリモートデバッグの設定をしていきます。

Preferences

Build, Excution, Deployment > Docker

Laradockに接続するため、Dockerの設定を先に行います。

「+」で新規追加し、 Docker for Mac を選択。
「Connection Successful」と表示されればOKです。

Languages & Frameworks > PHP

PHP関係のパスを通します。
Dockerコンテナ内のプロジェクトのパスと、ローカルプロジェクトパスを関連づけます。

■CLI Interpreter
「…」をクリックし、 From Docker, Vargrant, VM, Remote... を選択し、以下設定で新規追加し、それを設定します。

  • Server: Docker(ラジオボタン選択)
  • Image name: laradock_workspace:latest
  • PHP Executable(PHP interpriter path): php

■Docker container
フォルダアイコンをクリックして、開いた画面の編集ボタン(鉛筆)をクリックし、以下設定します。

  • Container path: /var/www (laradockの .env ファイルの APP_CODE_PATH_CONTAINER に記載されているパス)
  • Host Path: Laravelアプリプロジェクトのルート ( app ディレクトリのある位置)
Debug

Debug portを「9001」に設定します。(xdebug.iniで設定したポート番号です。)

Servers

Xdebug受け入れ用のサーバ設定を行います。

  • Host: localhost
  • Port: 80
  • Debugger: Xdebug
  • Use path mappings: ☑️
  • Absolute path on the server: /var/www (laradockの .env ファイルの APP_CODE_PATH_CONTAINER に記載されているパス)
    ※Projects files配下の、 File/Directoryが、Laravelアプリプロジクトルートのパスのみに設定する。

Run/Debug Configurations

PHPStormでデバッグを有効にするための設定です。

まず、Run/Debug Configurationsを開きます。

「+」から PHP Rmote Debug を追加し、以下のように設定します。

  • Filter debug connection by IDE key: ☑️
  • Server: 先ほどServersで作成したものを選択
  • IDE key: PHPSTORM (xdebug.iniで設定したxdebug.idekey)

デバッグを実行してみる

電話アイコンをクリックし、虫アイコンをクリックすると、デバッグが開始されます。
その後、ブレークポイントを設定した上で、該当箇所をブラウザでアクセスすると、ブレークポイントに引っかかります。

さいごに

PHPStorm+Xdebugを使うと、ネイティブアプリのようなデバッグ環境を作ることができました。
PHPはデバッガなしでも開発できますが、Laravelなどのフルスタックフレームワークを使用していると、どうしてもデバッガを置きたいシーンが良くあります。
ぜひ、参考にしてみてください。

おすすめ書籍

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応 PHPフレームワーク Laravel入門 初めてのPHP

blog-page_footer_336




blog-page_footer_336




-BackEnd
-,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Rust入門してみた その3 Enum / match / Option編

1 はじめに2 Enum2.1 Enumの定義2.2 パターンマッチ2.3 Enumへのメソッド実装3 よく使う標準Enum3.1 Option3.2 Result4 おすすめ書籍 はじめに 前回に引 ...

Go言語

Go 1.24で追加されたweak pointer

1 はじめに2 weak pointerとは2.1 pointerとweak pointer2.2 weak pointerが有効なケース2.3 weak pointerを使う上での注意点3 weak ...

Go言語

Go 1.23 でslicesとmapsに追加された関数

1 はじめに2 slicesパッケージに追加された関数2.1 All2.2 Backward2.3 Values2.4 AppendSeq2.5 Collect2.6 SortedFunc2.7 Ch ...

rails

はじめてのrails、まずはローカル環境構築してみる

1 はじめに2 必要なライブラリ・ツールのインストール2.1 homebrew, rbenv2.2 rbenv-communal-gems3 最新安定版のrubyをインストール4 bundler, r ...

Stripe Connectを使って複合プランの継続課金を実装その2

1 はじめに2 追加プランの作成3 実装3.1 日割り金額の確認3.2 追加プランの契約4 さいごに5 おすすめ書籍 はじめに 前回の記事では、プラン(月額)とユーザ数分のID(従量課金)という2種類 ...

フォロー

blog-page_side_responsive

2019年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。