Xdebug の設定をいじってみて動くことを確認します♪

スポンサードリンク


以前書いた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 = “”

おわりに

調べるのって楽しいですねっ!!!解決方法だけじゃなくて、もっと検証の投稿が増えるといいなっ♪

One Reply to “Xdebug の設定をいじってみて動くことを確認します♪”

コメントを残す