開発環境LAMPHyper-Vxdebug
更新日 : 2020年9月1日
投稿日 : 2018年9月30日

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

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

こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
PHPエンジニアとして9年~の経験があります。

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

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

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

仮想開発環境を構築シリーズ
1 Hyper-Vで仮想マシンを作ろう
2-0 事前準備をしよう
2-1 Apacheを入れよう
2-2 PHPを入れよう
2-3 MariaDBとphpMyAdminを入れよう
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が入っている状態になると、このように見やすい表示にしてくれます。

XDebugが入っている画面

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

Xdebugをインストールする

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

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

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

なんでここでGitなんだよ!と思いますが、OSデフォルトのGitはバージョンが古くなってしまいます。どうせ使うなら最新のGitにしたいですね。

必要なパッケージをインストールします。

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker

Gitの最新バージョンはここから確認できます。
入れたいバージョンのものをwgetで取得します。今回は2.9.5でした。

cd /usr/local/src
sudo wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
# ダウンロードしたtarを解凍
sudo tar zxvf git-2.9.5.tar.gz

回答したtarファイルからmakeし、make installを実行します。

cd git-2.9.5
sudo ./configure --prefix=/usr/local/
sudo make prefix=/usr/local all
sudo make prefix=/usr/local install

# gitのバージョン
git --version

gitのバージョンが表示されたら成功です。

Xdebugをインストールする

インストールしているPHPのバージョンに合うXDebugを導入します。XDebug Wizardを使います。

「phpinfoの内容をコピーして貼り付ける」とありますので、その通りにしていきます。

Xdebug Wizardのphpinfoを貼り付ける場所

phpinfoを出力する

phpinfo();を実行するファイルを作成します。

cd /var/www/html
vim info.php
<?php
    phpinfo();

実行した結果です。

phpinfo

このページをコピーします。表示中ページをアクティブにしてCtrl+A → Ctrl + Cです。

全選択した図

この状態です。これでOKです。

このコピーしたものを先ほどのXdebug Wizardに貼り付けます。貼り付けたらページ下の「Analysis my phpinfo() output」をクリックします。

Xdebug Wizard 実行

インストール実行

結果が出たら、「Instructions」に書いてある通りに実行していきます。
PHP7.4に対応するXdebugは2.9.6のようです。

Xdebug Wizard結果
sudo wget http://xdebug.org/files/xdebug-2.9.6.tgz
# 必要なパッケージのダウンロード
sudo yum groupinstall "Development tools" && yum install php-devel autoconf automake

# tarファイルの解凍
sudo tar -xvzf xdebug-2.9.6.tgz

# make
cd xdebug-2.9.6
sudo phpize
sudo ./configure
sudo make
sudo make install

php.iniに記述を追加

/etc/php.iniにXdebugの記述を追加します。

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

記述後、apacheを再起動すると、phpinfoにXDebugが追加されていることが確認できます。

phpinfoにあるXDebug

php -vでもXdebugが追加された記述を確認できます。

php -v

PHP 7.4.7 (cli) (built: Jun  9 2020 10:57:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick Rethans

コマンドの解説

make

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

make test

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

make install

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

make clean

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

まとめ

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

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

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

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

参考サイト

PR

※本サイトはアフィリエイトプログラムを利用して商品を紹介しています。