10,499 views
この記事は最終更新から 1988日 が経過しています。
連載4回目、前回の 「(59)【連載3】VirtualBox上のUbuntuにXdebugを入れる」 の続きです。
この連載で最終的にやりたいこと
CentOS7を入れた物理サーバーに VirtualBoxをインストールし、
VirtualBoxの仮想マシン上で Ubuntuの仮想サーバーを動かし、
Ubuntuの仮想サーバー上で WEBサーバーを動かし、
eclipse + xdebug, PhpStorm + xdebugでリモートデバッグしたい。
今回やりたいこと
「(57)【連載1】CentOS7にVirtualBoxを入れる」では、
CentOS7を入れた物理サーバーに VirtualBoxをインストールし、Ubuntuの仮想サーバーを動かした。
「(58)【連載2】VirtualBox上のUbuntuをWEBサーバーにする」では、
このUbuntuを WEBサーバーとして使い、PHPスクリプトを動かしてMySQLを制御できるようにした。
「(59)【連載3】VirtualBox上のUbuntuにXdebugを入れる。」では、
このUbuntuに xdebugをインストールした。
今回は、
Windowsパソコンにeclipseを入れて、仮想 Ubuntu上で動作するPHPプログラムをデバッグしてみる。
イメージとしてはこんな感じだ。
(1) 必要なプログラムをインストール
Windowsパソコンにeclipseを入れる
1) Java SEをダウンロード&インストールする。
http://www.oracle.com/technetwork/java/javase/downloads/jre9-downloads-3848532.html
Windows10 64bit版ならば x64をダウンロードする。
2) eclipse for PHP Developersをダウンロード&解凍する。
https://www.eclipse.org/downloads/packages/eclipse-php-developers/oxygen1
いわゆるインストール作業はいらない。
解凍して出現した eclipse.exe を実行すれば eclipse IDEが使える。
(2) xdebug側の設定
前回の 「(59) VirtualBox上のUbuntuにXdebugを入れる。」 の設定を一部変更する。
※前々回の投稿で PHP 7.0を入れたので、その配下の php.iniを編集する。
sudo vi /etc/php/7.0/apache2/php.ini
Xdebug関連の記述を追加する。
xdebug.remote_host=192.168.1.12 ; xdebug.remote_port=9000 ; xdebug.idekey="XXXXXXXX"
remote_host にWindowsパソコンのIPアドレスを設定する。
remote_port をコメントアウトする。
idekey をコメントアウトする。
【不明点】
eclipseがWEBページへのアクセス時に次のように引数を渡している。
http://192.168.1.8/php/PhpTest/index.php?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=15070119744366
・XDEBUG_SESSION_START = ECLIPSE_DBGP
・KEY = 15070119744366
が削除した物に相当するのかもしれない。後日調査する。
php.iniの変更を反映させるために Apache2を再起動する。
sudo systemctl restart apache2 sudo systemctl status apache2
(3) eclipse側の設定
ここでは下記のバージョンを使用している。ちょっと古いな…
1. 新規プロジェクトを作成
ここでは PhpTest なるプロジェクトを新規作成し、下図のような単純なPHPコードを index.php に書いた。
1) [Run]-[Debug Configurations]メニューを選択する。
2. Debug configurationsを設定
2) [PHP Web Page]を選択した状態で、[New launch configuration]ボタンを押下する。
3) Server側(今回は仮想Ubuntu 192.168.1.8)の情報を設定する。
前回の投稿でデバッガは XDebugをインストールしたのでこれを選択すること。
[Configure…]の中身は下記のような感じ。
WEBブラウザから
http://192.168.1.8/php/PhpTest/
でアクセスすると、Ubuntuサーバー上の
/home/hoge/php/PhpTest/
へアクセスするように、事前にWEBサーバー側で設定済み。
3. デバッグ実行
[虫マーク]を押下し、上記2)で作成したデバッガを選択する。
後は他の言語の場合と同じ。
ブレークポイントを設定したり、変数値を見たり、ステップ実行したりできる。
自分の場合 PHPではそんなに大きなプログラムを書かないので var_dumpデバッグで十分だった。
今回構築した環境がいつか役に立つかもしれない。