初めに
どうもuehatsuです!!最近iOSの開発ばかりやっていますが、先日自分で作成したLaravelのWebアプリケーションを後任のWindows使いの方に引き継ぐ必要が出てきたので資料ついでにWindwos11でLaravelを実行する環境を作成する方法をまとめたいと思います。
開発環境一覧
- Windows 11
- PowerShell 7.5.0
- WSL2(ubuntu 24.04)
- Git (Git for Windows, ubuntu git)
- Docker Desktop
- PHP8.3
- Laravel 11
- PhpStorm
開発環境構築手順
Windows 11
今回は新しいマシンを購入したので、クリーンインストールとなります。minisforumのAtomMan G7 Ptを購入しています。
PowerShell 7.5.0
PowerShellを起動するたびにアップデートを促されるのでバージョンアップしておきます。以下を参照にMSIでのインストールを実行します。
その後、ターミナルの「設定」>「スタートアップ」>「規定のプロファイル」を「Windows PowerShell」から「PowerShell」に変更して「保存」ボタンをクリックします。これでターミナルを開いたときや新しいタブを開いたときに、PowerShell 7.5.0が起動するようになります。
WSL2(Ubuntu = Ubuntu 24.04.2 LTS)
WSL2を以下のQiita記事を参考にインストールしました。先達に感謝!!
Git (Git for Windows)
以下からGit for Windowsをインストールします。
後は、Windows側、WSL側それぞれでsshとgitの設定をしました。このあたりはmacOSと変わらないので省略します。
Docker Desktop
Docker Desktopは以下の公式ページを確認しつつインストールしました。
PHP 8.3
WSL2にPHP 8.3をインストールします。今回引き継ぐLaravelはVer.11を使っていて、PHPも8.3で開発したので、今回も8.3をインストールしています。基本的にLaravel Sailを利用しますが、初期設定に必要のためインストールします。いつもAnyenvを利用しているため、同様に開発環境を準備しようとしましたがcomposer installが正しく実行されなかったので諦めました。普通にaptでPHP 8.3をインストールします
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.3 php8.3-{cli,bz2,curl,mbstring,intl,xml,sqlite3,gd,zip,bcmath} unzip
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo systemctl stop apache2
sudo systemctl disable apache2
Laravel 11
echo "alias sail='./vendor/bin/sail'" >> ~/.profile
echo "export DOCKER_BUILDKIT=0" >> ~/.profile
echo "export COMPOSE_DOCKER_CLI_BUILD=0" >> ~/.profile
exec $SHELL -l
PhpStorm
PhpStormをインストールします。私はサブスクリプションを契約しているので、JetBrains Toolboxからインストールしていますが、ほかの方法でも構いません。
ここではPhpStormとしていますが、VScode, CursorなどのほかのIDEを利用する場合も同様です。ネットワークドライブ(今回はW:としました)に \\wsl$\ubuntu
を指定します。これでWSLのディレクトリがWindows側からもシームレスに閲覧できるようになります。
また、Gitの所有権でエラーが出るため、Windows側でsafe.directoryにパスを設定します。パスの /xxxx/xxxx/xxxx/
は適切な文字列に変更してください。
git config --global --add safe.directory //wsl$/ubuntu/home/xxxx/xxxx/xxxx/*
まとめ
うーん、macOSで慣れてしまっていると、設定が多い気がします。でも全くWindowsを無視することもできずですね(^^;