LuftGarden - 熊本のWebサイト・ホームページ制作スタジオ

BLOG技術ブログ

PhpStorm で Vagrant 環境のリモートデバッグを実行する

いつもお世話になってる同業の方に「PHPやるならエディタ(IDE)はPhpStormに乗り換えた方がいいよ!」と助言いただいたので早速インストールしました。簡単な設定だけで breakpoint 張れるので捗りますね。 今回は PHPStorm + Vagrant でリモートデバッグする手順を書き残しておきます。

動作条件

PHPがデバッグ版ではない

以下のチェックでDebug Build => noと表示されれば大丈夫です。

$ php -i | grep 'Debug Build'

PECL および Developer Package がインストールされている

PECLPEAR パッケージがインストールされていればOKです。Developer Package は CentOS などの RedHat系であれば php-devel パッケージのことを指すようです。 パッケージがインストール済みかどうかはrpmコマンドで確認できます。

$ rpm -qa | grep php

Xdebug のインストール

# インストール前にPECLチャンネルのアップデート(root必須)
$ pecl channel-update pecl.php.net
$ pecl install xdebug

### インストール完了後に以下のようなメッセージが出力されます ###
# Build process completed successfully
# Installing '/usr/lib64/php/modules/xdebug.so'
# install ok: channel://pecl.php.net/xdebug-2.5.5
# configuration option "php_ini" is not set to php.ini location
# You should add "zend_extension=/usr/lib64/php/modules/xdebug.so" to php.ini

# ちなみに yum でもインストールできるみたいです(未検証)
$ yum -y install php-pecl-xdebug

Xdebug の有効化

インストール完了後の指示どおり、php.ini にパスを追加します。 Xdebug の動作に必要な設定も併せて行っておきます。

zend_extension=/usr/lib64/php/modules/xdebug.so

xdebug.remote_enable=on
xdebug.remote_autostart=on
xdebug.remote_handler=dbgp

xdebug.remote_host=192.168.33.1
;VM の private_network が 192.168.33.xxx であれば
;ホスト側IPとして 192.168.33.1 を指定する必要があります。

xdebug.remote_port=9001
;デフォルトは9000ですが、上手く動作しないケースがあるようなので9001に変更します。

xdebug.idekey="phpstorm"
;任意の文字列で構いませんが、分かりやすいキーにしておきます。

以下のコマンドで設定が正常に反映されたことを確認して、Webサーバを再起動します。

$ php -i | grep xdebug
# xdebug support => enabled

$ systemctl restart httpd

phpunit などのCLIデバッグを利用する場合は以下の環境変数も設定しておくと良いようです。

$ vi ~/.bashrc
# VMのIPを指定
export PHP_IDE_CONFIG="serverName=192.168.33.10"

PhpStorm 側の設定

  1. Preferences > Languages & Frameworks > PHP > Serversを開き、Xdebug のポートを 9001 に変更します。
  2. Preferences > Languages & Frameworks > PHP > Debug > DBGp Proxyを開き、以下のように設定します。

PhpStorm設定手順01

  1. Run > Edit Configurations…を開いて「+」からPHP Remote Debugを追加し、以下のように任意の名称を付けておきます。

PhpStorm設定手順02

  1. 同画面上にあるServers の「…」を開き、VMの設定追加とFile/Directory(ローカルパス)とAbsolute path on the server(VM上におけるパス)のマッピングを行います。

PHPStorm設定手順03

  1. 画面最上部右側にあるアイコンをクリックし、デバッグのコネクションを有効化してスタンバイ状態にします。

PhpStorm設定手順04

  1. 任意の行に breakpoint を張る(Run > Break at first line in PHP scriptsにチェックを入れた状態にすると、breakpoint を張らなくてもプログラムの最初の行で停止させることができます)。
  2. ブラウザからVMにアクセスし、PhpStorm側でデバッグが開始されれば設定完了です。

おわりに

デバッグの待ち受けを停止させたい場合は、手順5のアイコンを再度クリックすればOKです。デバッグの具体的な流れについては以下の記事が参考になると思います。

PhpStormのデバッグを使いこなす – Qiita

参考記事

PhpStorm + Xdebug でリモートデバッグ – Qiita

PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI)- Shin x blog

PAGETOP