====== 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~~