2011年11月12日

Eclipse + PDT + xdebug によるリモートデバッグ環境構築メモ

なかなか上手くいかなかったxdebugによる「ローカルのxamppを使わない」リモートデバッグだが、最近、下記の方法で動いたので記しておく。

■サーバ設定
○実施環境
OS:CentOS release 5.7 (Final)
Webサーバ: Apache/2.2.3
PHP:PHP 5.2.11 (cli) (built: Sep 21 2009 14:49:09)
Xdebug v2.1.0,
ネットワーク:クライアントとは別ネットワーク

1) PECLでxdebugをインストール
[root@x]# pecl install xdebug

2) PHP設定ファイルを編集
/etc/php.ini は編集せず、
/etc/php.d/[任意の文字列].ini というファイルをすべて読んでくれる設定になっているので、
下記の内容の設定ファイルを作成。

[root@x]# vi /etc/php.d/xdebug.ini
zend_extension="/usr/lib/php/modules/xdebug.so";自分の環境にあわせてね
xdebug.remote_enable=1
xdebug.remote_connect_back = on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_port=9000
xdebug.collect_params = On
xdebug.dump.GET = *
xdebug.dump.POST = *


「xdebug.remote_connect_back」は
xdebug 2.1以降で有効な設定項目。任意のIPアドレスから接続可能となる。
(xdebug.remote_hostの設定は無視され、IPアドレスのフィルタリングは効かなくなるので、別の手段でアクセス制限をかける必要ある。とのこと)

3) Apache再起動

4) 設定確認
phpinfoにxdebugが追加されればOK。
[root@x]# php -i | grep xdebug
/etc/php.d/xdebug.ini
xdebug
xdebug support => enabled
xdebug.auto_trace => Off => Off




■クライアント設定
○実施環境
OS:Windows7 Professional(64bit) SP1
デバッグクライアント:Eclipse 3.6.2 Helios SR2 Windows 32bit ベース / Pleiades All in One (pleiades-e3.6-php-jre_20101025)
ネットワーク:サーバとは別ネットワーク

○Eclipseの設定
・PHP実行可能ファイル
pleiades-e3.6-php-jre_20101025のデフォルトのまま。一応、下記に示す。
名前:PHP 5.3.1 (CLI)
実行可能ファイルパス:D:\tools\pleiades-e3.6-php-jre_20101025\xampp\php\php.exe
PHP iniファイル:D:\tools\pleiades-e3.6-php-jre_20101025\xampp\php\php.ini
SAPI Type:CLI
PHPデバッガー:XDebug


・PHPデバッグ
デフォルト設定(これはリモートデバッグする際は関係ないが)
-----
PHPデバッガー:XDebug
サーバー:Default PHP Web Server
PHP実行可能ファイル:PHP5.3.1
-----

エンコード設定
-----
デバッグ転送エンコード:UTF-8
デバッグ出力エンコード:UTF-8
-----



○デバッグ構成
リクエスト先となるスクリプトをナビゲータ上で
メニューを開き、デバッグ構成を選択
下記を入力

名前:デバッグ構成の名前。任意。
サーバー・デバッガー:XDebug
PHPサーバー:※下記、手順で入力
新規ボタンをクリック
ダイアログの下記項目を入力
[サーバー]
----------------------------------------
サーバー名:任意
ドキュメントルートを示すURL:サーバー上のhttpdで設定されているドキュメントルート
※例)
下記のような状況である場合でも、設定するのはあくまで「ドキュメントルートを示すURL」
ドキュメントルートを示すURL:http://example.com
デバッグ対象アプリのベースURL:http://example.com/app1/public_html

ここで設定したサーバー情報はeclipseの設定-「PHPサーバー」に反映される
----------------------------------------
[パス・マッピング]
追加ボタン押下
サーバー上のパス:スクリプトが配置されているディレクトリのパス
※文字通りに設定する。
例えばスクリプトのファイルパスが
/home/www/public_html/project_name/_web/public_html/script.php
の場合は、
/home/www/public_html/project_name/_web/public_html/
を設定

ローカルパス:ワークスペースのパス(ディレクトリまでファイル名含まず)
例)/project_name

ファイル:ワークスペースのパス(ファイル名含む)
URL:
[前半部分]ドキュメントルート固定
[後半部分]URLのドキュメントルートより下
例)
[前半部分]http://example.com
[後半部分]/project_name/_web/public_html/script.php

デバッグボタン押下でデバッグスタート


■参考
http://onlineconsultant.jp/pukiwiki/?Xdebug%E3%82%92%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%99%E3%82%8B
http://d.hatena.ne.jp/sotarok/20071225/vmware_centos5_101
posted by プログラマA at 08:07| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。