PHPをWSL2+VSCode(launch.json)でデバッグする方法

PHPをWSL2+VSCode(launch.json)でデバッグする方法

前提

  • OSはWSL2(Ubuntu-22.04)
  • WSL2にApache2,php8.2.5インストール済
  • VSCodeプラグインにWSL(Remote-WSL)インストール済
  • プロジェクトは/tmp/proj/配下
  • Docker未使用

Xdebugインストール

$ sudo apt install php-xdebug
$ sudo phpenmod xdebug
$ sudo service apache2 restart

インストールされているか確認します。

php -v
PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies
    with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans

php.ini追記

viでphp.iniを開きます。

$ sudo vi /etc/php/8.2/apache2/php.ini

php.iniがない場合は、sudo apt install libapache2-mod-phpを実行します。

6行追記します。

[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=localhost
xdebug.client_port=9003
xdebug.idekey="VSCODE"

VSCodeプラグイン

VSCodeにPHP、PHP Debugをインストールします。

PHPをWSL2+VSCode(launch.json)でデバッグする方法 PHPをWSL2+VSCode(launch.json)でデバッグする方法

launch.json

launch.jsonを作成します。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "hostname": "0.0.0.0"
        }
    ]
}

pathMappingsで/var/www/htmlと${workspaceFolder}をマッピングするとうまく動作しなかったのでシンボリックリンクで対応しました。

/var/www/html/projがプロジェクトのシンボリックリンクになります。

$ cd /var/www/html
$ sudo ln -s /tmp/proj proj

デバッグ(F5)

VSCodeを/var/www/htmlで起動し、F5でデバッグします。

projディレクトリ直下のindex.phpがあればlocalhost:80/proj/index.phpにアクセスすればブレークポイントで止まるようになります。

その他のphpファイルもブラウザからアクセスしてデバッグすることが可能になります。

参考サイト

Xdebug: Documentation » Step Debugging
Xdebug: A powerful debugger for PHP

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました