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


関連記事

rails

Shrineをモデルに関連付けないで使用してハマったこと

1 はじめに2 アップロード時にリサイズする3 アップロード時のバリデーション4 アップロード時に古いファイルを削除する5 さいごに はじめに ShrineはRailsでのアップロードを簡単に行えるよ ...

laravel logo

LaravelでHTTP通信

1 はじめに2 インストール3 基本的な使い方3.1 GETでリクエストを投げる3.2 リクエストヘッダーを指定3.3 クエリパラメータを指定3.4 timeout時間を指定3.5 POSTでリクエス ...

RubyのHanamiチュートリアルをやってみた

1 はじめに2 紹介2.1 Hanamiとは?2.2 Hanamiを選ぶ理由2.2.1 軽量2.2.2 アーキテクチャとして2.2.3 スレッドセーフ3 チュートリアルのための準備4 実践4.1 はじ ...

Go言語

Go言語のエラーハンドリングとログローテーション

1 はじめに2 エラーハンドリング2.1 error インターフェース2.2 pkg/errors パッケージ3 独自のエラータイプ付き errorsパッケージを作成4 log パッケージ4.1 lo ...

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

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

フォロー

blog-page_side_responsive

2019年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

アプリ情報

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