WEB/システム/IT技術ブログ

Visual Studio Codeの拡張機能「PHP Debug」と「Xdebug」を使ってPHPをデバッグする

Visual Studio Codeの拡張機能「PHP Debug」を使ってPHPをデバッグします。

PHP Debugは、PHPデバッグの定番である拡張モジュール「Xdebug」を使用してVSCode上でPHPデバッグを可能にする拡張機能です。

ちなみに今回、以下の環境で実現しました。

  • Windows 10 Home
  • PHP 7.4.27(xampp 7.4.27)
  • Visual Studio Code 1.63.2
  • Xdebug 3.1.2

PHP Debugのインストール

VSCodeの左メニューから「拡張機能」のアイコンをクリックして、「PHP Debug」を検索してインストールします。

PHP Debugのインストールは以上です。

Xdebugのインストール

xamppにはデフォルトでXdebug 2.8.1が用意されているのですが、今回は3.xを使用したいので、公式サイトからdllをダウンロードします。

Xdebug: Support; Tailored Installation Instructions
こちらのページでは「<?php phpinfo() ?>」または、コマンドから「php -i」を実行した結果から、最適なXdebugのインストール方法を診断してくれます。今回はコマンドの実行結果を貼り付け「Analyse my phpinfo() output」ボタンを押します。
すると、dllの設置方法が表示されます。その中から「php_xdebug-3.1.2-7.4-vc15-x86_64.dll」を入手し、xamppを設置しているディレクトリ「…/xampp/php/ext/」に設置します。

「…/xampp/php/php.ini」をテキストエディタで開き、以下を追記します。
※パスは適宜調整します

[Xdebug 3.x]
zend_extension = "C:\xampp\php\ext\php_xdebug-3.1.2-7.4-vc15-x86_64.dll"
xdebug.mode=debug
xdebug.start_with_request=yes

xampp control panelからApacheを再起動します。

Xdebugのインストールは以上です。
インストールが成功してるかどうかはphpinfo、またはコマンドラインからPHPのバージョンを出力すると確認することができます。

> php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 19:52:13) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans

ちなみに、こちらは古い環境(Xdebug 2.x)で使用していた内容です。3.xとは項目が異なるので注意が必要です。

[Xdebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_autostart = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\xampp\tmp"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_log="c:\xampp\tmp\xdebug.txt"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "c:\xampp\tmp"
xdebug.remote_cookie_expire_time = 36000

PHPデバッグ

以上で準備は整ったので、実際にデバッグしてみます。
VSCodeの左メニューから「デバッグ」のアイコンをクリックして、ヘッド部分のプルダウンから「Listen for Xdebug」を選択し、緑色の再生ボタンをクリックすると、デバッグモードがスタートします。

細かい設定は省きますが、これでデバッグ環境が整いました。簡単ですね。
VSCodeもインタフェースも分かりやすいので、直感的にいろいろ操作できると思います。

B!

Comment

コメントはありません

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives