BLOGスタッフブログ

インソースマーケティングデザイン

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のログです。エラーメッセージが文字化けしていてよく分かりません…。

!ENTRY org.eclipse.ui.browser 4 0 2012-12-28 16:24:38.295
!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.(ProcessImpl.java:189)
  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の設定

[xdebug]
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上でブレークポイントをおき、デバッグしましょう。

結構省略してますが、どうでしょう?
以上です。ではまた。

インソースマーケティングデザインが書いた他の記事

見積もり・ご依頼など、
お気軽にご相談ください

本サイトはユーザーエクスペリエンスの向上などを目的に、Cookieを使用しています。
右記のバナーで「同意する」をクリックする、または本サイトを利用することにより、
お客様は弊社のCookieポリシーに同意したことになります。

同意します