こんにちわ、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の導入方法については割愛します。他サイトを参照してください。
メインマシン
- Windows 10 Pro
- メモリ 8GB
- HDD 500GB
- CPUコア 6
仮想マシン
- CentOS 7
- メモリ 2GB
- HDD 50GB
- CPUコア 2
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の内容をコピーして貼り付ける」とありますので、その通りにしていきます。
phpinfoを出力する
phpinfo();を実行するファイルを作成します。
cd /var/www/html
vim info.php
<?php
phpinfo();
実行した結果です。
このページをコピーします。表示中ページをアクティブにしてCtrl+A → Ctrl + Cです。
この状態です。これでOKです。
このコピーしたものを先ほどのXdebug Wizardに貼り付けます。貼り付けたらページ下の「Analysis my phpinfo() output」をクリックします。
インストール実行
結果が出たら、「Instructions」に書いてある通りに実行していきます。
PHP7.4に対応するXdebugは2.9.6のようです。
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が追加されていることが確認できます。
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ではバグが起きた!なんてことも…
本番機と同じ、又は近い開発環境を用意できると、本番アップロードしたときに何かがあって慌てることが少なくなります。
毎回人任せに立ててもらうわけにもいきませんし、自分で構築できるようになっていると素晴らしいなと思いました。