XAMPP + PDT + ZendDebuggerでリモートデバッグ
[追記(2007-06-21)]この記事を少し詳しく書いた記事を公開しました。
最近、家のPCにEclipse PDTを入れてみた。リモートデバッグでステップ実行とかしてみると超便利で超楽しい。備忘録代わりにインストールメモを残しておこうと思う。ちなみに、OSはWinXP SP2。
1.XAMPPインストール
apache friendsからXAMPP 1.6.1を手に入れます。
落ちてきたファイルを実行して、インストーラーどうりに進めていけば簡単にXAMPPをインストールすることができます。
インストールしたらhttp://localhost/にアクセスしてみてちょっと感動。こんなに簡単にサーバーできちゃったよ、みたいな。
2.ZendDebuggerの導入
まずは、ZendDebuggerを手に入れます。
32bitWindowsでPHP5.2.x系ならZendDebugger-5.2.3-Windows-i386.zipを落としてくれば大丈夫。
ZendDebugger-5.2.3-Windows-i386.zipを解凍したら、5_2_x_compフォルダを、php-5.2.xという名前にリネームして、適当な場所に保存します。ここでは、とりあえずC:\xampp\php\zendOptimizer\lib\Debuggerというフォルダを作ってその中に入れておきましょうか。
次に、php.iniの[Zend]の項目の最後に↓を挿入します。
zend_extension_manager.debug_server_ts = "C:\xampp\php\zendOptimizer\lib\Debugger" zend_debugger.deny_hosts = all zend_debugger.allow_hosts = 127.0.0.1/192.168.0.* zend_debugger.expose_remotely = always
C:\xampp\php\zendOptimizer\lib\Debuggerとか192.168.0.*とかはそれぞれの環境にあわせて書き換えてもらえばいいです。
php.iniってデフォルトではC:\xampp\apache\binにあるみたいですね。C:\xampp\phpの中にあるやつだと思い込んで、しばらくはまった(汗)
phpinfo()で確認してみてZendDebuggerがインストールされていれば成功。ついでに、zend_debugger.connector_portの値を確認しておきましょう。
3.Eclipse PDTインストール
面倒なので↓からPDT All-in-oneパッケージを落としてきます。
PDT 0.7 RC3 (Eclipse PDT Project)
インストールは、適当なディレクトリに解凍するだけ。面倒だからAll-in-Oneパッケージを使っちゃうけど、SDKを落としてきて一からフィーチャーを追加していってもいいでしょう。日本語化なんかもしたければどうぞ。ただし、PDTはまだ日本語化されていません。
4.PDTを設定
Eclipseを起動したら、メニューバーからWindow→Preferencesへ。左のPHPのツリーを展開。
まずは、PHP Executablesを登録。Addを押して、適当な名前をつけてC:\xampp\phpを登録するだけ。
次に、PHP Serversを登録。Newを押して、適当な名前をつけてhttp://localhostを指定するだけ。Publish Projects to this ServerをOnにしておいて、ドキュメントルートのC:\xampp\htdocsを登録しとくと後で何かと便利です。
最後に、Debugの項目を編集。Default ServerとDefault PHP Executableにはたぶん先ほど入力した値が反映されていると思います。変更する必要があるのは、下のDebug Portのところだけ。先ほどphpinfo()で確認したzend_debugger.connector_portの値を書いてあげるだけ。
これで準備完了です。
後は適当なプロジェクトを立ち上げて、DebugAs→PHP Web Pageを選ぶだけ。ステップ実行と変数表が便利すぎます。もうvar_dumpとか使えませんね。
PDTに関しては、http://hp.vector.co.jp/authors/VA000137/phpide/がすごく詳しいので細かいことはここを見てみてください。
そういえば、PHP IDEからPDTに名前が変わってから結構立つはずなのに、いまだにネット上では(特に日本語では)PHP IDEのまま更新されてないサイトが結構あるね。なんでかしら。


