Xdebug は、PHP アプリケーションの分析と最適化に役立つ強力な PHP デバッグおよびプロファイリング ツールです。ステップバイステップのデバッグ、パフォーマンス測定、スタック トレースなどの機能をサポートしているため、トラブルシューティングがはるかに簡単になり、コードに対するより良い洞察が得られます。以下は、VSCode 内で使用するための簡単なセットアップ ガイドです。
Xdebugをインストールする
例として、現在の Ubuntu システムに Xdebug をインストールします。:
sudo apt-get install -y php8.4-xdebug
最後に、プロファイリングおよびトレース データを後で保存するための一時ディレクトリを作成します。:
mkdir -p /tmp/xdebug
Xdebug を構成する
インストール後、Xdebug を設定します。これを行うには、それを編集します ja/php.ini:
vi /etc/php/8.4/fpm/conf.d/custom.ini
以下は賢明な基本構成です:
[xdebug]
; mode (see: https://xdebug.org/docs/all_settings#mode)
; reasonable default
xdebug.mode=debug,profile
; disabled
;xdebug.mode=off
; step debugging
;xdebug.mode=debug
; performance profiling (be aware of load/space)
;xdebug.mode=profile
; trace profiling (record args)
;xdebug.mode=trace
; starting mode
; always (not recommended)
;xdebug.start_with_request=yes
; only when specific get parameters / cookies are set
; (?XDEBUG_TRIGGER=1, ?XDEBUG_PROFILE=1, ?XDEBUG_TRACE=1, ?XDEBUG_SESSION=1)
; this is best in conjunction with Chrome extension "Xdebug helper"
xdebug.start_with_request=trigger
; folder for analyzing profile dumps
xdebug.output_dir="/tmp/xdebug"
; not needed, since it is already in /etc/php/8.4/fpm/conf.d/20-xdebug.ini
;zend_extension=xdebug.so
これらの調整を行った後、PHP-FPM を再起動して変更を適用します。:
sudo service php8.4-fpm restart
VSCodeを構成する
Visual Studio Code で Xdebug を使用するには、2 つの拡張機能と構成の調整が必要です。これを設置します:
- PHPのデバッグ: 基本的なデバッグ機能用。
- PHPプロファイラー: Cachegrind ファイルを分析するため。
最後に、分析するプロジェクトの.vscodeフォルダーにlaunch.json構成ファイルを作成します。:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"ignore": ["**/vendor/**/*.php"]
}
]
}
Chrome拡張機能をインストールする
Xdebug ヘルパー拡張機能は、ブラウザーで柔軟にデバッグできることが実証されています。これにより、必要な場合にのみ Xdebug を有効または無効にすることができます。デバッグ モードを簡単に変更することもできます (たとえば、デバッグからプロファイリングに切り替えるなど)。:

WordPress を設定する
WordPress 環境で Xdebug を使用する場合、デバッグ セッションがアクティブなときに cron ジョブ内のデバッグを無効にすると便利な場合があります。これにより、リクエストのデバッグが容易になります。これを行うには、次の行を次の場所に追加します。 wp-config.php
ある:
// disable wp cron on xdebug sessions
if (function_exists('xdebug_is_debugger_active') && xdebug_is_debugger_active()) {
define('DISABLE_WP_CRON', true);
}
この構成により、複雑なデバッグ問題に正確に対処できる強力なセットアップが得られます。頑固なバグを見つける場合でも、パフォーマンスの問題を微調整する場合でも、Xdebug は作業を効率化するだけでなく、コードの制御と明確さを通じて開発に新たな品質をもたらします。