Eclipse + PHPEclipse で PHP のリモートデバッグ
ちょっといろいろ必要になったので、PHP のリモートデバッグ環境を整えてみる。 さすがに “ほげデバッグ” ではきつくなってきました。
今までは、PHP を含め全ての物は Eclipse 2.1.3 でつくっていましたが、Eclipse も 3.1 が出ようかというご時世、らしい。 2.1.3 が安定していたので最近追っていませんでした。。 開発環境って、なれるとなかなか変えられないのですよね。
いろいろ調べたところ、Eclipse 3.0.1 と PHPEclipse というプラグインがリモートデバッグができるらしい。 せっかくなので、これを期に順次 Eclipse 3 系に移行していこうと思います。
今回の目標は、PHP プログラム試験用 Linux + Apache + PHP + MySQL サーバに Windows の Eclipse から接続して、プログラムの修正 & リモートデバッグ(ステップ実行や変数のウォッチ)を行うこと。今までは、samba 経由でサーバのプログラムの修正をEclipse からして、ブラウザから run & try。変数を見たいときは、echo して画面に表示させていました。 さすがにプログラムの規模が大きくなるとこれはきつい。 上のスクリーンショットが目標達成の図です。 🙂
きっと同じ事をしている人は沢山居るだろう、、とインターネットを検索するもあまり情報がない。。 みなさん、Windows だけで完結させるほうほうでやっているみたいですね。 というわけで、調べながら試行錯誤。
- サーバ PHP モジュールに対して dbg モジュールをアドインする。ダウンロードサイトのLinux バイナリは、glibc2.2 系しかないようなのでソースからコンパイル。
- php.ini にコンパイルした dbg モジュールの設定を追加。 Apache を再起動後 phpinfo(); で読み込まれているか確認。
- Eclipse に PHPEclipse プラグインをインストール。新規プロジェクトを作成。プロジェクトの作成場所は、Linux サーバの Apache のドキュメントの配下にする。(FTP するのは面倒なので ディレクトリはsamba で接続しておく)
- PHPEclipse のデバッグ設定をする。リモートデバッグにチェックを入れ、LocalPath を Eclipse からみた Windows 的なパスに、Remote Path を Linux 側のパス(URLにあらず)にして対応ずける。
- 起動スクリプトを指定して、ブレイクポイントを設定。(どうも通常の設定操作だと止まってくれないので、止めたいところに「debugbreak();」を挿入。でもって、デバッグ開始押下。
- ブラウザから「http://サーバ名/起動スクリプト名」のあとに「?DBGSESSID=1@clienthost:10001」をつけてアクセス!
- Eclipse のデバッグ画面をみると、スクリプトがブレイクポイントでとまるので、あとはステップ実行や変数の表示ができる
という感じです。 そのうちまとめよう。
やぁ、これで WP のプログラムも追いやすくなりました。 😉
追記。 詳細書きました。
Windows Eclipse から Linux PHP をリモートデバッグする (PHPEclipse + PHP/dbg)