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


関連記事

laravel logo

Laravelのバッチ処理を作る

1 はじめに2 環境3 artisanコマンド作成4 artisanコマンドをバッチとして登録する5 さいごに6 おすすめ書籍 はじめに こんにちは。webアプリにつきもののバッチ処理ですが、もちろん ...

laravel logo

LaravelのDI

1 はじめに2 DIに関する機能2.1 DIとは2.2 サービスコンテナ2.3 サービスプロバイダ3 サービスコンテナ3.1 バインド3.2 bind3.3 bindIf3.4 singletonメソ ...

[Dialogflow + CF] アクア様が罵倒してくれたり天気を教えてくれるSlackボットを作る

1 はじめに2 Dialogflowの準備2.1 プロジェクトを作る2.2 Intentを作る2.3 試してみる2.4 WELCOME Intentを作る3 Slackボットを作る4 名前を答える5 ...

laravel logo

【Laravel】認証を自作して学ぶguardとmiddleware

1 はじめに1.1 認証処理の仕様2 独自の認証処理の実装2.1 Modelの実装2.2 UserProviderの実装2.3 Guardの実装2.4 Middlewareの実装2.5 Handler ...

Stripe Connectを使って継続課金を実装

1 はじめに2 商品・価格の登録2.1 マイグレーション2.2 製品・価格登録処理の実装2.3 Stripe管理画面での確認3 サブスクリプション登録3.1 事前準備3.2 課金処理の実装3.3 St ...

フォロー

blog-page_side_responsive

2019年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

アプリ情報

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