以前書いたApach 、MySAQL 、PHP を Windows 環境でも開発できるように簡☆単さを重視して Eclipse の Pleiades All in One PHP をインストールします。 | oki2a24での Xdebug の設定は次のサイトを参考にさせていただきました。
具体的には、C:\pleiades\xampp\php\php.ini の末尾に次を追加したのでした。
xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "localhost" xdebug.remote_port = 9000 xdebug.remote_log = "C:\pleiades\xampp\php\logs\xdebug.log" xdebug.collect_params = 1 xdebug.dump.GET = "" xdebug.dump.POST = "" xdebug.profiler_enable = 1 xdebug.profiler_output_dir = "C:\pleiades\xampp\tmp"
でも、なぜこれでよいかわかりません。今回はこれらの設定をいじって Xdebug の設定について勉強します。
まずはお試し。
複雑な設定をしてある行に「;」をつけて次の4行をコメント化、つまり無効にしてみます。
xdebug.remote_enable = 1 ;xdebug.remote_handler = "dbgp" ;xdebug.remote_host = "localhost" ;xdebug.remote_port = 9000 xdebug.remote_log = "C:\pleiades\xampp\php\logs\xdebug.log" xdebug.collect_params = 1 xdebug.dump.GET = "" xdebug.dump.POST = "" xdebug.profiler_enable = 1 ;xdebug.profiler_output_dir = "C:\pleiades\xampp\tmp"
そして設定を反映させるために、Apache を一旦 Stop そして Start させて再起動します。その結果・・・
動きますねえ。ブレークポイントで止まるし、ステップ実行もできます。また、一番下の xdebug.profiler_output_dir はまったく同じ設定が上にありましたので無効にしています。
値の「0」と「1」を考えます
バカみたーい♪と思うでしょう?わたくしもそう思います。でも、こんな初歩的なことでも確認します。今まで試した感じだと、次のことが言えます。
- php.ini の [Xdebug] では「0」は false、オフ、無効を意味する。
- php.ini の [Xdebug] では「1」は true、オン、有効を意味する。
なるほど。ここで、もう一度 [Xdebug] の295行をざざっと眺めます。ああ、いっぱいありますねえ♪「0」が設定されている行がわらわら!「0」は無効、「1」は有効、ということは。。。
0を1に、無効を有効にして試してみる
一旦末尾に追加した、冒頭の設定行達を削除します。
そして元からある次の行を有効にしてみました。全部で4箇所です。勉強用に説明コメントも引用しておきます。
xdebug.profiler_append
; xdebug.profiler_append ; Type: integer, Default value: 0 ; When this setting is set to 1, profiler files will not be overwritten when a new request would map ; to the same file (depnding on the xdebug.profiler_output_name setting. Instead the file will be ; appended to with the new profile. xdebug.profiler_append = 1
xdebug.profiler_enable
; xdebug.profiler_enable ; Type: integer, Default value: 0 ; Enables Xdebug's profiler which creates files in the profile output directory. Those files can be ; read by KCacheGrind to visualize your data. This setting can not be set in your script with ini_set ; (). xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger
; xdebug.profiler_enable_trigger ; Type: integer, Default value: 0 ; When this setting is set to 1, you can trigger the generation of profiler files by using the ; XDEBUG_PROFILE GET/POST parameter. This will then write the profiler data to defined directory. xdebug.profiler_enable_trigger = 1
xdebug.remote_enable
; xdebug.remote_enable ; Type: boolean, Default value: 0 ; This switch controls whether Xdebug should try to contact a debug client which is listening on the ; host and port as set with the settings xdebug.remote_host and xdebug.remote_port. If a connection ; can not be established the script will just continue as if this setting was Off. ;---------------------------- ; Pleiades All in One Custom ;---------------------------- ;xdebug.remote_enable = 0 xdebug.remote_enable = 1
結果、ブレークポイントで止まり、ステップ実行もできました。ただし、
- 画像が出ない。
- phpinfo() の情報が中途半端にしか出ない。
と、ぱっと見ただけですけれど、いちばん最初の設定と違いがありました。一番最初の設定との違い、これを挙げて今回の投稿はおしまいにしようと思います。
- xdebug.remote_handler = “dbgp”
- xdebug.remote_host = “localhost”
- xdebug.remote_port = 9000
- xdebug.remote_log = “C:\pleiades\xampp\php\logs\xdebug.log”
- xdebug.collect_params = 1
- xdebug.dump.GET = “”
- xdebug.dump.POST = “”
おわりに
調べるのって楽しいですねっ!!!解決方法だけじゃなくて、もっと検証の投稿が増えるといいなっ♪
「Xdebug の設定をいじってみて動くことを確認します♪」への1件の返信
[…] Xdebug の設定をいじってみて動くことを確認します♪ | oki2a24 […]