WindowsクライアントからLinuxサーバーのPHPウェブページをリモートデバッグする設定のメモです。
Windows(XP SP2)には、EclipseのPHP開発用プラグイン「PDT」をインストールします。
「PDT」は、Xdebugクライアントになります。
Xdebugは、Xdebugインストールメモのようにインストール済みです。
PDTインストール
PDTは、PDT Projectから「PDT All-in-One」パッケージをダウンロードしました。
(ダウンロードしたファイルは、pdt-all-in-one-S20071213_M1-win32.zipです。)
インストールは、zipファイルを適当なフォルダに解凍するだけでOKのようです。
(JVM(Java virtual machine)は必要)
サーバーの設定
デバッグするファイルは、次のようなパスにあるものとします。
| ドキュメントルート | /var/www/html |
|---|---|
| デバッグ対象ファイル | /var/www/html/rd/index.php |
| デバッグ対象URL | http://test.localdomain/rd/index.php |
/var/www/html/rd/index.phpは、次のようなものにします。
.htaccessにXdebugの設定
ドキュメントルートの.htaccessには、次のような設定を行います。
php_flag xdebug.remote_enable On
php_value xdebug.remote_handler dbgp
php_value xdebug.remote_host 192.168.0.XX
この例では、xdebug.remote_hostには、WindowsクライアントのIPを指定しています。
PDTプロジェクト作成
eclipse.exeを起動します。
初めてeclipseを起動するときには、Workspaceの作成を聞かれると思います。
プロジェクトの新規作成
1.メニューの[File]->[New]->[Project]をクリック。
2.[PHP Project]を選択して、[Next]ボタンをクリック。
3.Project Nameを適当に入力して、[Finish]ボタンをクリック。
この例では、[Use efault]のチェックを外して、「H:\test」を指定しています。
![]()
4.サーバーのファイルをWindowsクライアントにコピー。
サーバーのファイルとローカルファイルは、次のような対応にしました。
| サーバーのファイルパス | /var/www/html/rd/index.php |
|---|---|
| ローカルのファイルパス | H:\DocumentRoot\rd\index.php |
5.ローカルファイルをプロジェクトに追加。
プロジェクト名を右クリックして表示されるメニューの[Import]をクリックして、ローカルのファイルをインポートします。
![]()
![]()
[Finish]ボタンをクリックして完了。
PDT デバッグ設定
1.
メニューの[Run]->[Open Run Debug...]をクリックします。
2.
[PHP Web Page]をダブルクリックして、デバッグ設定を作成します。
主な設定は、次のようになります。
| Server Debugger | Xdebug |
|---|---|
| PHP Server | サーバー一覧が表示されていない場合は、[New]ボタンをクリックして作成します。 デバッグ対象があるサーバー名を指定します。 |
| File | プロジェクトに追加したファイルを指定します。 |
| URL | デバッグ対象のURLを指定します。 |
3.
[Apply]ボタンをクリックして、設定を保存します。
PDT デバッグ実行
メニューの[Run]->[Debug]をクリックします。
デフォルトでは、ブレークポイントを設定しなくても、PHPスクリプトの先頭でデバッガが処理を停止します。
次のキャプチャは、[F5]キーを押しながら関数の中まで入ったところです。
その他
Windows(XP SP2)には、COMODO Firewallをインストールしています。
最初、ファイアーウォール(COMODO Firewall)にブロックされて、PDTでデバッグできるまで少し手間取りました。
COMODO FirewallのApplication Control Rulesで、次の設定を行いました。
- IEXPLORE.EXEの設定で、親がeclipse.exeの場合、MiscellaneousのAllow invisible connection attemptsにチェックを入れる。
(一度、すべてのIEXPLORE.EXEの設定の設定を削除後、[Run]->[Debug]すると、COMODO Firewallが許可するかどうか聞いてくるかも。)
eclipseはとても重いというイメージがありましたので、軽快に動作するのが意外でした。
僕はemacsで作業することが多いですが、PDTでのデバッグをときどき利用したいと思います。
ノートPC(Windows XP)からメインで使用しているPCに接続できなくなっていました。
最近、メインのPCには、COMODO Firewallを導入していたので、それが原因でした。
COMODO FirewallでWindowsネットワークを見えるように設定したメモです。
1.COMODO Firewallを起動し、SECURITYボタンをクリック。
2.Network Monitorボタンをクリック。
3.Addボタンをクリック。
Protocolに「TCP or UDP」を選択し、Source IPに接続元のPCのIPアドレスを指定し、OKボタンをクリックします。
他の設定はデフォルトのままにしています。
Network Control Ruleの追加
4.Addボタンをクリック。
Protocolに「ICMP」を選択し、Source IPに接続元のPCのIPアドレスを指定し、OKボタンをクリックします。
他の設定はデフォルトのままにしています。
Network Control Ruleの追加
5.追加したルールを「Block & Log」ルールより前になるようにMove Upボタンをクリック。