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

Railsでの非同期処理とDelayed Job

1 はじめに2 Active Job2.1 Active Jobの役割2.2 ジョブを作成する2.3 ジョブをキューに登録する2.4 コールバック2.5 例外3 Delayed Job3.1 設定3. ...

Laravelの開発環境をdocker-composeで一から構築してみる

1 はじめに2 nginxでwebサーバを立てる2.1 default.conf作成2.2 index.html作成2.3 nginxコンテナ起動3 nginxでPHP-FPMを動作させる3.1 do ...

js

TypeScriptでJavaScriptのライブラリを使用するには?

1 はじめに2 対応方法2.1 npmで@typesからインストールする2.2 自分で型定義ファイルを作る3 Declaration Space3.1 Type Declaration Space3. ...

rails

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

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

Go言語

Go 1.18で追加されるGenericsの紹介

1 はじめに2 GoのGenerics2.1 Genericsの主な仕様2.2 Genericsの制限3 Genericsを使ってみる3.1 基本形3.2 呼び出しの際の型引数を省略する3.3 型制約 ...

フォロー

blog-page_side_responsive

2019年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

アプリ情報

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