インソースマーケティングデザイン
2013.01.10 システム
[PHP]Eclipse+Xdebugによるデバッグ
PHPで開発する際、EclipseにてXdebugを使用してデバッグできると便利!
ということで、弊社ではいつもXdebugでデバッグしながら開発をしています。
いや、開発していました。ところが、昨年の夏頃から突然デバッグができなくなりました…。
デバッグを起動すると、57%問題が発生し途中で止まってしまいます。
Eclipseのバージョンあげたから?Windows7に変えたから?64bitだから?設定?
何度も何度も試行錯誤するものの、原因がわからず…。
弊社ではPHPのフレームワークとして主にCakePHPを使用しているのですが、
CakePHPのプラグイン「DebugKit」でもある程度は何とかなるものの、
複雑なものになるとちょっと困っていました。
ところが昨年年末、再びXdebugでのデバッグ環境構築にチャレンジして原因がわかりました!
おかげで晴れ晴れした気持ちでお正月休みに突入できました。
Eclipseのデフォルトブラウザとして「Firefox」を指定していたのですが、
それが何か悪さをしていたようで、「IE」に変更したらすんなりデバッグできました。
Firefoxをバージョンアップしたせいだったんですね…。
なぜ「Firefox」だとダメなのかという根本原因は解決していません。
どなたか情報があれば教えてください。
以下が、その際のEclipseのログです。エラーメッセージが文字化けしていてよく分かりません…。
!MESSAGE Launching C:Program FilesMozilla Firefoxfirefox.exe has failed.
!STACK 0
java.io.IOException: Cannot run program “C:Program”: CreateProcess error=2, ツ指ツ定さツれたツフツァツ?
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
at java.lang.Runtime.exec(Runtime.java:615)
at java.lang.Runtime.exec(Runtime.java:448)
at java.lang.Runtime.exec(Runtime.java:345)
at org.eclipse.ui.internal.browser.browsers.MozillaBrowser$BrowserThread.openBrowser(MozillaBrowser.java:94)
at org.eclipse.ui.internal.browser.browsers.MozillaBrowser$BrowserThread.run(MozillaBrowser.java:165)
Caused by: java.io.IOException: CreateProcess error=2, ツ指ツ定さツれたツフツァツ?
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.
at java.lang.ProcessImpl.start(ProcessImpl.java:133)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
… 5 more
(追記)
Eclipseのブラウザ設定にて、Firefoxのパスを正しく設定したらFirefoxでもデバッグできました!
昨年の夏頃何があったんだろう??
それでは、一応EclipseにてXdebugを使用してデバッグするための設定を簡単に紹介します。
◆環境
O S: Windows7 (64bit)
WEB: Apache 2.2.16
PHP: PHP 5.3.10
IDE: Eclipse 4.2.0 (Juno) PDT (Pleiades – Eclipse プラグイン日本語化プラグイン)
Xdebug: Xdebug 2.2.1
1.Xdebugの設定
1)Xdebugのダウンロード(php_xdebug-2.2.1-5.3-vc9.dll)
http://xdebug.org/download.php
<自分の環境に最適なXdebugバージョンの入手>
http://xdebug.org/wizard.php
上記、ページに自分のPHP環境で出力したphpinfoのソースを貼り付けると
最適なXdebugバージョンを教えてくれます。
2)php_xdebug.dllのコピー
PHPのインストールされている下記フォルダにコピー。
C:phpextphp_xdebug-2.2.1-5.3-vc9.dll
3)php.iniの設定
zend_extension=”C:phpextphp_xdebug-2.2.1-5.3-vc9.dll”
xdebug.remote_enable=1
xdebug.remote_handler=”dbgp”
xdebug.remote_mode=req
xdebug.remote_host=”localhost”
xdebug.remote_port=9000
xdebug.manual_url=http://jp2.php.net
xdebug.collect_params = On
xdebug.dump.GET = *
xdebug.dump.POST = *
4)確認
Apacheを再起動し、phpinfoで確認。「xdebug」が追加されていればOK。
2.Eclipseの設定
1)デフォルトブラウザの設定
2)デバッグ構成設定
3.デバッグ
上記デバッグ構成にて「デバッグ」をクリックすると、デフォルトブラウザが起動します。
Eclipse上でブレークポイントをおき、デバッグしましょう。
結構省略してますが、どうでしょう?
以上です。ではまた。