ホーム > 技術情報 > Hyper-V LAMP環境を構築-4.Xdebugを設定しよう

Hyper-V LAMP環境を構築-4.Xdebugを設定しよう

投稿日 : 2018年09月30日   更新日 : 2019年10月12日
カテゴリー : 開発環境(Pleiades/Eclipse/Xampp他) / 技術情報 / 仮想マシン / サーバー
Hyper-V LAMP環境を構築-4.Xdebugを設定しようの画像

こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
私はPHPエンジニアとして6年~の経験があります。WordPressは2年~の経験があります。その他、jQuery、HTML、CSSも使用します。
ここでは主に過去に納品した案件や自サイト運営(エンジニア婦人ノート)で遭遇したことについて書いています。

前回はLaravvelを導入して、外部マシンからもアクセスできるように設定しました。

ここではXdebugを使ってリモートデバッグをできるように設定し、Eclipseでデバッグ開発できるようにします。

ブレークポイントで止まり、変数の中身を確認できたら便利です。当然ながら、開発効率もぐぐーんとアップします。

仮想開発環境構築シリーズ

  1. Hyper-Vで仮想マシンを作ろう
  2. 仮想マシンウェブサーバーを作ろう
  3. Laravelをインストールしよう
  4. Xdebugを設定しよう
  5. Eclipseでデバッグしよう

システム要件

  • Windows10にEclipseを入れて、こちらでソースを編集します。
  • 仮想マシンのCentOS7にXdebugを入れます

※Eclipseの導入方法については割愛します。他サイトを参照してください。

Eclipseダウンロードはこちらから

メインマシン

  • Windows 10 Pro
  • メモリ 8GB
  • HDD 500GB
  • CPUコア 6

仮想マシン

  • CentOS 7
  • メモリ 2GB
  • HDD 50GB
  • CPUコア 2

Xdebugとは

一言で言うととても高機能なPHPのデバッグツールです。これが入っているのといないのでは大違い。

何かエラーがあったとき、Xdebugが入っていないとこうなります。

XdebugなしのPHPエラー表示
XdebugなしのPHPエラー表示

ただのテキストですね。これが、Xdebugが入っている状態になると、このように見やすい表示にしてくれます。

phpinfoでXdebugの項目の有無でも確認できますが、わざとエラーを出してみても、該当サーバーにXdebugが入っているかどうかすぐにわかりますね。

Xdebugを仮想サーバーにインストールする

Xdebugを、実行したいソースがあるサーバーにインストールします。

ここでは仮想開発環境を構築しているので、CentOS7にインストールします。開発作業をするローカルではありません。

Gitコマンドを使えるようにする

なんでここでGitなんだよ!と思いますが、今回はGitからダウンロードしてコンパイルする方法を取りました。パッケージインストールで必要なPearインストールがうまくいかなくて大変だったため、方法を変えただけのこと

そのため、Gitを使えるようにします。

wgetコマンドを使うため、wgetをインストールします。

yum install wget

次に、yumリポジトリ情報を取得します。

cd /etc/yum.repo.d/
wget http://wing-repo.net/wing//EL6.wing.repo

最後に、gitをインストールします。

yum install git

これでgitコマンドが使えるようになりました。

Xdebugをインストールする

ソースからコンパイルしてインストールする手順を踏みます。

cd /usr/local/src
git clone git://github.com/xdebug/xdebug.git
cd xdebug
phpize ./configure --enable-xdebug

make
make test
make install

Xdebugを保存する場所に移動して、そこでXdebugのソースをgitからクローンしてダウンロード。

作られたxdebugフォルダに移動して、それをmake(コンパイル)して、インストール、という流れです。

特にエラーもなく終了すればOK。エラーがあった場合はそのメッセージに従います。

どうしてもうまくいかないときはmake cleanで綺麗にして、コンパイルからやり直してみるといいかもしれません。

コマンドの解説

phpize ./configure –enable-xdebug

phpにモジュールを追加する、コンパイルの準備をします。xdebugを有効にします。

make

phpizeで準備されたものをコンパイルします。

make test

makeでコンパイルしたものを使って、テストインストールします。システムは変更されません。

make install

makeでコンパイルしたものを使って、インストールします。システムは変更されます。

make clean

makeで作られたものを一旦削除します。お掃除。

php.iniファイルの更新

無事にXdebugがインストール出来たら、php.iniファイルにXdebugを使う設定を追記します。

[zend debugger]
zend_extension=/usr/lib64/php/modules/xdebug.so

[XDebug]
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=1
xdebug.remote_connect_back=1

設定後、Apacheを再起動します。

service httpd restart

設定できたか確認するために、わざとエラーを出してみます。

これで仮想マシン上でXdebugが動作していることの確認が取れました。

設定したXdebug項目の説明

xdebug.default_enable

xdebugを有効化します。

xdebug.remote_enable

Xdebugのリモート使用を許可します。

xdebug.remote_port

Xdebugの使用するポートを指定します。通常は9000です。

xdebug.remote_handler

デバッグするエンジンを指定。dbgpにしておけば間違いなさそうです。

xdebug.remote_mode

セッション開始モードを指定します。即座に開始するreqで問題なさそうです。

エラーがあったときのみ実行する場合はjitモードがあるようです。

xdebug.remote_autostart

セッションを自動開始するかどうかの設定をします。自動開始で良いです。

xdebug.remote_connect_back

PHPにアクセスした側のIPアドレスに自動的につなぐようになります。

これを設定するとxdebug.remote_hostの設定は無視されます。

xdebug.remote_host

リモートホストの値を設定します。localhostだったり、IPアドレスだったり環境によって色々だと思いますが、xdebug.remote_connect_backをオンにしている場合はこの値は無視されます。

まとめ

Pleiades All in Oneを使ってXAMPP開発をしていると、デバッグの設定もほぼ済んでいる状態でインストールできるので、この辺りはあまり意識しない部分になりますね。

本番機がLinux、開発はWindowsでやっていると、たまにXAMPPでは起きなかったのにLinuxではバグが起きた!なんてことも…

本番機と同じ、又は近い開発環境を用意できると、本番アップロードしたときに何かがあって慌てることが少なくなります。

毎回人任せに立ててもらうわけにもいきませんし、自分で構築できるようになっていると素晴らしいなと思いました。

参考サイト

楽しい物造りを

NaoLight

自分のブログやサイトを、楽しく作ってもらえたら。

プログラムを使って望み通りに、拡張しやすく、自分の思うように。

できたときに、すごく楽しい!と思ったら。

控えめに言って、「最高です」。

NaoLight -NAOT-(なおらいと、なおと、と呼んでください)はそんな思いをカタチにする、WordPressのテーマです。

ご購入はこちらからお願いします(BOOTHへ移動します)。

Nao Light-NAOT-公式サイト