前回とは違って、Pleiades に Xdebug が標準装備されたそうなので、リトライしてみる。
ただし、前回同様 Pleiades 同梱の XAMPP ではなくて、別途導入した XAMPP を利用。
前回記事
デバッグ XDebug 編
XDebug の導入
XDebug の導入の試行錯誤
【環境】
[Eclipse] 4.4
[OS] Windows7 SP1 64bit
[XAMPP for Windows] 1.8.1
[ php] 5.4.7
php.ini
(xampp)\php\php.ini
の必要箇所をコメントアウトから復帰。
2085行目の値を 1 に。
[XDebug]
zend_extension = "(xampp)\php\ext\php_xdebug.dll"
;xdebug.profiler_append = 0
xdebug.profiler_enable = 1
;xdebug.profiler_enable_trigger = 0
;xdebug.profiler_output_dir = "(xampp)\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
;xdebug.remote_handler = "dbgp"
;xdebug.remote_host = "127.0.0.1"
;xdebug.trace_output_dir = "(xampp)\tmp"
※あちこちいじっているため、行番号は不確か。
Eclipse 設定
デバッグ環境の確認
[ウィンドウ]-[設定]
[PHP]-[デバッグ]
Pleiades を導入している場合は、普通は恐らく確認するだけ。
私の場合は、単体 XAMPP を利用するのでちょいと設定が必要。
PHP 実行可能ファイルの追加
上記 [デバッグ] ダイアログで [PHP 実行可能ファイル…] というリンクからでもいける。
- [ウィンドウ]-[設定]
- [PHP]-[PHP 実行可能ファイル]
- [追加]
- New PHP Executable
- 名前:任意
- 実行可能ファイル・パス:[参照] から、利用したい php.exe ファイルを選択する
- PHP ini ファイル(オプション):実行可能ファイルを選択したら、同階層の php.ini ファイルが自動入力された
他のものを利用したいときは、別途指定できるみたい
- SAPI タイプ:利用したい php に合わせる *1
- [次へ]
- Debugger Settings
- デバッガー:XDebug
- その他の設定は不明につきデフォルト
- [完了]
- [OK]
*1:SAPI タイプは、CLI 版か、CGI 版か、ということらしい。
下記コマンドにて確認できる。
>(xampp)\php\php.exe --version
PHP 5.4.7 (cli) (built: Sep 12 2012 23:48:31)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
PHP サーバーの追加
必要に応じて
[ウィンドウ]-[設定]
[PHP]-[サーバー] からサーバーの追加。
Default PHP Web Server についても、Debugger の設定が必要。
[Default PHP Web Server] を選択
[編集]
[デバッガー] タブ
上記「PHP 実行可能ファイルの追加」の「Debugger Settings」参照
[完了]
デバッグ環境の設定
追加後、改めて
[ウィンドウ]-[設定]
[PHP]-[デバッグ] から
先ほど追加したものを選択。
「最初の行でブレーク」のチェックを外す。
include_path
Eclipse では、上記 [PHP 実行可能ファイル] で php.ini の場所を設定したにも拘らず
include_path を上書きするらしく、設定しないと include_path が無視される。
そこで改めてプロジェクト毎にインクルードパスを設定してやる必要がある。
[プロジェクトを右クリック]-[インクルード・パス]-[インクルード・パスの構成]
[外部ソース・フォルダの追加] からインクルードしたいディレクトリを指定する。
2015-12-17 追記 ここから
XDebug の導入 には、起動構成について書いたけど
こちらで書くのを忘れてる。。。
基本的な進め方は、上記の前回記事を参照。
ただ、今回 Eclipse をアップデートしたせいか、前のやり方ではできなかった。
というか、バグってるかも?
【環境】
Eclipse: Mars.1 (4.5.1)
かも
[実行]-[実行構成]
構成の作成、管理、および実行
[PHP Web アプリケーション]-[新規の起動構成]
ここで、ファイルの [参照] に行くと、
「ファイルの選択」というダイアログが出るものの
ファイルリストが出てこない。。。
手動入力
なので、ファイル欄は、手動で設定。
/(スラッシュ)で始めて、プロジェクトルートから index.php までのフルパスを入力。
例)/projectA/web/index.php
別の追加の仕方
実行時に読みにいくファイル、大概は index.php でしょう。
このコンテキストメニューから
[デバッグ]-[PHP Web アプリケーション]
これで、新規起動構成を自動生成して
ダイアログを開いてくれる。
便利!
stack overflow:Debug PHP on Eclipse MARS with XDebug: error: file does not exist
2015-12-17 追記 ここまで
デバッグ開始!
ブレークポイントの設定
止めたい行番号をダブルクリックすることで、ブレークポイントの OnOff をできる。
開始
ツールバーの虫(Bug)ボタンをクリックすればデバッグ開始。
方法の選択
初回デバッグ時に、方法を聞かれる。
[PHP CLI アプリケーション] を選択してやると、
[説明] 欄に「Debug PHP Executable」と表示されるので
[OK] 。
2015-12-17 追記 ここから
そういえば、昔、こんな記事を書いた記憶が。。。
今になってみれば
PHP CLI アプリケーション:コマンドラインで動かす
PHP Web アプリケーション:Web サイト
なので、[PHP Web アプリケーション] を選択するべきだった、とは思えるけど
それでも、よくわかっていない。
コマンドラインで動かす PHP って、どんなのだろう。。。
2015-12-17 追記 ここまで
2016-01-06 追記 ここから
上記設定を全部済ませたのに、デバッグを開始しても
デバッグパースペクティブのデバッグタブに何も現れない。
ブレークポイントも効かない。
サイトの表示はされる。
ただし、URL に XDEBUG_SESSION_START というパラメータが付いていない。
悩んでみたけど、設定を確認して戻ってくると
ちゃんとデバッグできた。
こんなこともあるのね~。
2016-01-06 追記 ここまで
パースペクティブの切り替え
初回ブレークポイント使用時にパースペクティブの切り替え確認ダイアログが出るので
[常にこの設定を使用する] にチェックを入れて [はい] 。
参考サイト
Web 制作・運用 Tips アーカイブ:Eclipse+XdebugによるPHPのデバッグ方法