概要
WSL2上でLaravel Sailで環境を構築しVSCodeを使用した際に、PHP関連のエクステンションを動かしたいが、PHPのパスが解決出来ていないと動作しないエクステンションがあり、その解決で動いた方法のメモ。
WSL環境はWindows10、Ubuntu-20.04
方法
PHPを実行するファイルを作成する。
sudo vi /usr/local/bin/php
以下の内容を記載して保存する。
内容的には、実行時のディレクトリ名を取得して、それをDocker exec
の際のコンテナ名に使用して、PHPを実行する。
コンテナ名はLaravel Sailのデフォルトになっているので、もしコンテナ名が異なれば適宜修正する。
path=$(printf '%s\n' "${PWD##*/}")
command="docker exec ${path}_laravel.test_1 php "$@""
$command
実行権限を付ける
sudo chmod +x /usr/local/bin/php
これで、Laravel Sailのプロジェクト直下に移動して、php -v
などのコマンドを打てば実行される。
あとはVSCodeのエクステンションの設定でも動作するようになる。
例えば、以下のPHPMDのエクステンションは、
この設定で動くことが確認できた。
"phpmd.command": "php ./vendor/bin/phpmd"