[PHP開発環境] PHPをデバッグする
2008.12.09 |Category …PHP
前回はPHP5にZendDebuggerを導入するところまで行った。
今回はいよいよEclipseでデバッガ起動をしてみる。
その前に、Eclipse側の設定を行う。
まず、Preferences -> PHPより Debugを選択する。

各設定項目を以下のように埋める。
PHP Debugger・・・Zend Debuggerf
Server・・・Default PHP Web Server
PHP Executable・・・localhost
エンコーディングはとりあえずUTF-8。

PHP DebuggerのConfigureアンカー。各デバッガで利用するポートの設定だろう。

ServerのPHP Serverアンカー。PHPを稼動させるためのWebサーバの設定を行う。
(注・いろいろ触ってるうちに先に作っちゃってたっぽい。本来はここではじめて行う設定かも・・・)

PHPサーバを選択してEdit。
Eclipse上で使う設定名とURIを入力。(http://localhost)

Path on ServerにPHP保存ディレクトリの絶対パスを入力し、Local Pathにワークスペース上のパス(プロジェクト名でOKか?)を入力する。

PHP Executableアンカーより、PHP実行ファイルのパスを設定する。
Nameは何でもOK。
Executable Pathはphp.exeへの絶対パス。
PHP ini fileはphp.iniファイルへの絶対パス。
テストによってphp.iniファイルを差し替えたいときは便利かも。
PHP debuggerはZend Debuggerを選択。
ここまで設定して、ワークスペースよりPHPファイルを選択してDebug -> PHP Script。
普通にデバッガが起動してステップ実行ができるようになりました。

きちんとサーバ環境変数も拾ってくれるしなかなかイイ感じ。
と、ここでふと思ったのだがApache起動してないじゃん。
ここでこんどはこのまま「Debug as PHP Web Page」を実行してみる。
今度はEclipse上でブラウザが起動して、案の定実行エラーになった。
更に、今度はApacheを起動した上で「Debug as PHP Web Page」を実行。
すると、同様にEclipse上でブラウザが起動してデバッグモードに突入しました。
きちんとApacheへのアクセスをデバッグするときはApache起動の上でやらないとだめってことね。(当たり前)
では、今度は外部のブラウザからアクセスしてみる。
が、普通にアクセスしてみてもEclipse上でとまってくれない・・・
Tomcatだとここでとまってくれるのに。
Eclipse上のブラウザのURLを見てみる。
http://localhost/phptest/test.php?
debug_session_id=1005&start_debug=1&debug_start_session=1&debug_host=hogehage%
2C127.0.0.1&debug_no_cache=1228750711078&debug_port=10000&
send_sess_end=1&original_url=http://localhost/phptest/test.php&debug_stop=1
なげー。
これ、全部クエリで渡してるのかッ!
このURLをブラウザに貼り付け、実行するとようやくEclipse上でとまってくれました。
Zendのデバッガって無理やりクエリでデバッグ用のパラメタを送ってやってるのね・・・
デバッグ自に必要かどうかはわからないけど、生リクエストでデバッグはできないものなのだろうか?
どっかで見かけたけどZendではMod_Rewriteが効かないらしいがこのあたりが原因?
今度はXDebugの方も見てみよう。
まぁ、何はともあれ、Eclipse上でのデバッグ環境はなんとなくできたということで・・・
今回はいよいよEclipseでデバッガ起動をしてみる。
その前に、Eclipse側の設定を行う。
まず、Preferences -> PHPより Debugを選択する。
各設定項目を以下のように埋める。
PHP Debugger・・・Zend Debuggerf
Server・・・Default PHP Web Server
PHP Executable・・・localhost
エンコーディングはとりあえずUTF-8。
PHP DebuggerのConfigureアンカー。各デバッガで利用するポートの設定だろう。
ServerのPHP Serverアンカー。PHPを稼動させるためのWebサーバの設定を行う。
(注・いろいろ触ってるうちに先に作っちゃってたっぽい。本来はここではじめて行う設定かも・・・)
PHPサーバを選択してEdit。
Eclipse上で使う設定名とURIを入力。(http://localhost)
Path on ServerにPHP保存ディレクトリの絶対パスを入力し、Local Pathにワークスペース上のパス(プロジェクト名でOKか?)を入力する。
PHP Executableアンカーより、PHP実行ファイルのパスを設定する。
Nameは何でもOK。
Executable Pathはphp.exeへの絶対パス。
PHP ini fileはphp.iniファイルへの絶対パス。
テストによってphp.iniファイルを差し替えたいときは便利かも。
PHP debuggerはZend Debuggerを選択。
ここまで設定して、ワークスペースよりPHPファイルを選択してDebug -> PHP Script。
普通にデバッガが起動してステップ実行ができるようになりました。
きちんとサーバ環境変数も拾ってくれるしなかなかイイ感じ。
と、ここでふと思ったのだがApache起動してないじゃん。
ここでこんどはこのまま「Debug as PHP Web Page」を実行してみる。
今度はEclipse上でブラウザが起動して、案の定実行エラーになった。
更に、今度はApacheを起動した上で「Debug as PHP Web Page」を実行。
すると、同様にEclipse上でブラウザが起動してデバッグモードに突入しました。
きちんとApacheへのアクセスをデバッグするときはApache起動の上でやらないとだめってことね。(当たり前)
では、今度は外部のブラウザからアクセスしてみる。
が、普通にアクセスしてみてもEclipse上でとまってくれない・・・
Tomcatだとここでとまってくれるのに。
Eclipse上のブラウザのURLを見てみる。
http://localhost/phptest/test.php?
debug_session_id=1005&start_debug=1&debug_start_session=1&debug_host=hogehage%
2C127.0.0.1&debug_no_cache=1228750711078&debug_port=10000&
send_sess_end=1&original_url=http://localhost/phptest/test.php&debug_stop=1
なげー。
これ、全部クエリで渡してるのかッ!
このURLをブラウザに貼り付け、実行するとようやくEclipse上でとまってくれました。
Zendのデバッガって無理やりクエリでデバッグ用のパラメタを送ってやってるのね・・・
デバッグ自に必要かどうかはわからないけど、生リクエストでデバッグはできないものなのだろうか?
どっかで見かけたけどZendではMod_Rewriteが効かないらしいがこのあたりが原因?
今度はXDebugの方も見てみよう。
まぁ、何はともあれ、Eclipse上でのデバッグ環境はなんとなくできたということで・・・
PR
●Thanks Comments
●この記事にコメントする
●この記事へのトラックバック
TrackbackURL: