====== debugging with XDebug ======
**XDebug**はWebサーバのphpページをデバッグができるモジュールである。\\
ここではeclipse上で**XDebug**を設定する手順を紹介する。\\
前提として、**Eclipse+PDT(All in one)**がインストールされているとする。\\
執筆中の最新版はEclipse3.5である。
次は順番に**XDebug**の設定手順を見てみよう。
===== Installation of XDebug =====
[[http://www.xdebug.org/download.php|XDebug download]]ページからダウンロードできる。\\
ソース版とWindows binary版があるが、それぞれ環境に応じてダウンロードする。\\
ここでは、Windows環境を基準に説明する。 執筆中の最新の安定版が2.0.5だったので、2.0.5のWindows binary版を
ダウンロードする。\\
ダウンロードしたZipファイルを適当なローカルフォルダに解凍する。
C:\phpdebugger\Xdebug2.0.5\php_xdebug-2.0.5-5.2.dll
次はInstallした**XDebug**モジュールの場所をphpエンジンに知らせる必要がある。
その設定は**php.ini**で行う。 設定部分を次に示す。
[Zend]
; Zend debugger Configuration
; the windows non-thread safe is used only with Zend Core 2.0
;
; zend_extension_ts=C:/phpdebugger/ZendDebugger5.2.14/5_2_x_comp/ZendDebugger.dll
; zend_debugger.allow_hosts=127.0.0.1
; zend_debugger.expose_remotely=always
[XDebug]
zend_extension_ts=C:/phpdebugger/Xdebug2.0.5/php_xdebug-2.0.5-5.2.dll
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1 ; if debugging on remote server,
; put client IP here
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.profiler_output_dir="D:/temp"
ここで、**Xdebug**モジュールの位置を指定する際、**zend_extension_ts**を使用するか、**zend_extension**を使用するかを注意して欲しい。\\
どれを使うべきなのかは、**phpinfo()**で確認すればよい。
私の環境での**phpinfo()**の結果を次に示す。
{{:study:php5:xdebug_phpinfo.jpg|phpinfo}}
ここで、**Debug Build**部分と**Thread Safety**部分を見ると、**Debug Build**は**No**、**Thread Safety**は**enable**
である。\\
もし、**Debug Build**が**Yes**で**Thread Safety**が**disable**だったら、**zend_extension**ではなく
**zend_extension_debug**で指定することになる。
===== setup of PHP Executables =====
次はeclipseの設定を見てみよう。
まずは、**%%Window>Preferences>PHP>PHP Executables%%**の設定だ。
{{:study:php5:php_executable.jpg|PHP Executables}}
Nameは適当な名前でも構わないので適当に入力する。 最後の項目でdebuggerの選択が出来る。\\
PDTは**%%Zend Debugger%%**と**%%XDebug%%**をsupportしている。\\
今回はXDebugを使うので、XDebugを指定しよう。
===== setup of PHP Servers =====
次はPHPサーバの設定である。
**%%Window>Preferences>PHP>PHP Servers%%**で設定画面を開いてみる。
{{:study:php5:php_server.jpg|PHP Servers}}
ここでは、特に説明する部分はない。\\
この段階まできたら、一応PHPサーバ上でphpファイルのデバッグが出来るようになる。\\
後はEclipse上でDebugセッションを実行すれば、ディフォルトで1行から**%%break point%%**が掛かるはずだ。
===== XDebug install for php4.4.x =====
因みに、**php4.4.x**下の環境でXDebugをinstallする際は、php.iniで次のように設定すればよい。\\
ただし、この場合は[[http://www.xdebug.org/download.php|XDebug download]]ページから4.4バージョンのバイナリファイルをダウンロードする必要がある。\\
ダウンロードしたdllファイルをphpのextensionディレクトリにコピーする。\\
extension=php_xdebug-2.0.2-4.4.6.dll
===== reference =====
- [[http://robsnotebook.com/php_debugger_pdt_xdebug|How to setup a free PHP debugger using Eclipse PDT + XDebug]]
- [[http://www.eclipse.org/pdt/articles/debugger/os-php-eclipse-pdt-debug-pdf.pdf|Debugging PHP using Eclipse and PDT]]
- [[http://www.glamenv-septzen.net/view/42|PHP4.3環境下でXDebugの導入]]
~~DISCUSSION~~