php.iniのxdebugの設定値を理解する

php.iniのxdebugの設定値を理解する

 

 

eclipseなどのIDEからphpをデバッグ実行したいと思った時に、
php.iniにxdebugセクションを記述しないといけない。

しかし、xdebugセクションは、何となく書いて何となく動いているって言う人のために、
各設定値についてその意味を分かりやすくまとめた。

 

xdebugセクションの設定値を理解する(例)

# php.ini

[XDebug]
;重要
zend_extension = "C:\development\xampp\php\ext\php_xdebug.dll" (1)
xdebug.remote_enable = true                                        (2)
xdebug.remote_host = "127.0.0.1"                                   (3)
xdebug.remote_port = 9000                                          (4)

;そこまで重要じゃない
xdebug.profiler_enable = 1
;xdebug.profiler_output_dir = "C:\tmp"
xdebug.profiler_output_dir = "C:\development\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_handler = "dbgp"
;xdebug.trace_output_dir = "C:\tmp"
xdebug.trace_output_dir = "C:\development\tmp"

 

早速だが、xdebugの設定値の例を書いてみた。

値を「重要」「そこまで重要じゃない」の二つに分類して書いてみたが、
今回は「重要」に分類した(1)〜(4)の値に重きを置いて説明していく。

 

(1) zend_extension:xdebugのインストールパスを記載

「zend_extension」には、インストールしたXdebug本体のパスを記載する。

zend_extension = "C:\development\xampp\php\ext\php_xdebug.dll" (1)

Xamppの場合、「xamppのルート/php/ext/」配下に拡張機能は配置するので、例として上記はそのように記述している。

 

(2) xdebug.remote_enable:リモートセッションを有効にするか記載

「xdebug.remote_enable」には、リモートセッションを有効にするかどうかを記載する。
trueで有効にする設定なのでtrueと記載しておく。

xdebug.remote_enable = true                                        (2)

ここで「リモートセッション」という言葉が出てきたが、
このリモートセッションが何かというのを説明していく。
リモートセッションを理解することでxdebugの設定値を理解したも同然だからだ。

それにはまず、「リモート」という言葉が何を意味しているかを理解することが鍵となる。

 

xdebugにおけるリモートとは

xdebugでまず大事な概念が、「リモート」が何かという理解。
結論から言うと、以下のような関係図(ローカルの場合)になっている。

xdebugのリモートセッションの画像

 

PHPやxdebugが置かれているphp実行環境(つまりxamppなど)とは別の場所でデバッグを制御する方がリモート。つまり通常エクリプスなどのIDEのことを指す。

 

xdebugのリモートとは

PHPやxdebugが置かれているphp実行環境(つまりxamppなど)とは別の場所でデバッグを制御する方のこと

 

リモート側(エクリプスなど)から、xdebug入りphp実行環境下のプログラムを実行することで、デバッグモードでプログラムを起動することができる(これをリモートセッションという)。

そしてリモート側で事前にブレークポイントを張ったポイントで処理を止めることができ、効率的にデバッグを進めることができる。

break-point-image

 

ローカルのデバック開発環境を構築するのに、「リモート」と言うのも何やらしっくりこない単語だだが、php実行環境から見れば、エクリプスであれPHPStormであれ、外部のプログラムであるので、そいつらをまとめて「リモート」と呼んでいる訳である(筆者主観含む)。

 

ポイント

php実行環境から見ればIDEなどは外部プログラムなので、「リモート」と呼んでいるよ(主観含む)。

 

上記を踏まえて、リモートセッションとは

上記を踏まえて、xdebugのリモートセッションとは、分かりやすく言うと
エクリプスなどのIDEから、php実行環境に対して確率する、デバッグ一連の流れのことだ。

xdebugのリモートセッションとは

 

xdebugのリモートセッションとは

エクリプスなどのIDEから、php実行環境に対して確率する、デバッグ一連の流れのことだ。

 

(3) xdebug.remote_host:リモートホストを記載

「xdebug.remote_host」には、リモートホストのIPを記載する。

xdebug.remote_host = "127.0.0.1"                                   (3)

リモートの説明はもう大丈夫だろう。
リモートが同じローカルの場合のは、ループバックアドレス(127.0.0.1)を記載しておけばOKだ。

 

(4) xdebug.remote_port:リモートポートを記載

「xdebug.remote_port」には、リモートの接続ポートを記載する。

通常、9000で指定しておく。

 

php.ini の xdebug 設定値まとめ

 

  • 「zend_extension」には、インストールしたXdebug本体のパスを記載する。

リモートとは、PHPやxdebugが置かれているphp実行環境(つまりxamppなど)とは別の場所でデバッグを制御する方のこと。以上を踏まえて、

  • 「xdebug.remote_enable」には、リモートセッションを有効にするかどうかを記載する。
  • 「xdebug.remote_host」には、リモートホストのIPを記載する。
  • 「xdebug.remote_port」には、リモートの接続ポートを記載する。

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。