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をインストールします。
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
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント