(60)【連載1-4】eclipse + xdebugでPHPリモートデバッグ

投稿者: | 2017年10月3日

この記事は最終更新から 556日 が経過しています。

連載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デバッグで十分だった。
今回構築した環境がいつか役に立つかもしれない。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です