Laravel Sailを使うと、Windowsでも簡単にLaravelの開発環境を構築できます。
しかし、デフォルトでは ./vendor/bin/sail up -dのように毎回フルパスを指定しないといけないため、エイリアスを設定してsail up -dだけで実行できるようにします。
①なぜWindowsで WSL2 + Laravel Sailを使うのか?
WindowsでLaravelを動かすにはPHP・Composer・MySQLなどを手動でインストールする必要がありますが、以下の問題があります。
-
WindowsはLinuxベースではないため、Laravelの動作環境が異なる
(エラーが出やすい)。 -
PHPやMySQLのバージョン管理が難しい
(プロジェクトごとに異なるバージョンを使うのが困難)。 -
Windowsのファイルシステムの制約により、npm installなどが失敗しやすい。
②WSL2 + Laravel Sailを使うメリット
-
WindowsでもUbuntu(Linux)環境を作れる
→本番環境と同じ環境で開発できる。 -
Laravel Sail(Docker)を使えば、PHPやMySQLのインストール不要!
-
プロジェクトごとに異なるPHP / MySQLを使える
→開発環境を統一できる。
③WSL2 + Laravel Sailのセットアップ
1.WSL2(Ubuntu)をセットアップ
wsl --install -d Ubuntu
WSL2のUbuntuを開き、初期設定(ユーザー作成)を行う。
2.Docker Desktopのインストール
公式サイトからインストール。
Docker Desktopの設定
→「Use the WSL2 based engine」を有効にする。
④Laravelプロジェクトの作成
Ubuntu(WSL2)内で Laravelプロジェクトを作成。
cd ~
composer create-project laravel/laravel myapp
cd myapp
⑤Laravel Sailをインストール
composer require laravel/sail --dev
php artisan sail:install
※ sail:install実行時に使用するサービス(MySQL, Redis など)を選択。
⑥ Laravel Sailで環境を起動
./vendor/bin/sail up -d
これでLaravelが動作する環境が完成!
→ブラウザで http://localhost にアクセスして確認。
⑦sailコマンドを短縮する(エイリアスの設定)
./vendor/bin/sail up -d を sail up -d だけで実行できるようにするために、エイリアスを設定します。
1. ~/.bashrc にエイリアスを追加
以下のコマンドを WSL2(Ubuntu)内で実行。
echo 'alias sail="/mnt/c/user/keiziban/vendor/bin/sail"' >> ~/.bashrc
source ~/.bashrc
※ "/mnt/c/user/keiziban" の部分は、自分のLaravelプロジェクトのフルパスに変更してください。
2.設定の確認
エイリアスが正しく登録されているか確認。
alias
alias sail='/mnt/c/user/keiziban/vendor/bin/sail' が表示されればOK!
さらに、which sail で sail コマンドが正しく設定されているかチェック。
which sail
/mnt/c/user/keiziban/vendor/bin/sail が表示されればOK!
もし/usr/games/sailなど別のパスが表示されたら、以下でキャッシュをクリア。
hash -r
which sail
3.sail up -d が動くか確認
sail up -d
これでLaravelのDockerコンテナが起動すれば成功!
⑧複数のプロジェクトでsailを使う場合
エイリアスを固定すると、特定のプロジェクトでしか使えないため、どのプロジェクトでもsail を使えるようにする方法を紹介します。
.bashrcに関数を追加
sail() {
if [ -f "./vendor/bin/sail" ]; then
./vendor/bin/sail "$@"
else
echo "Error: ./vendor/bin/sail が見つかりません。プロジェクトのルートディレクトリで実行してください。"
fi
}
設定を反映する。
source ~/.bashrc
これでどのプロジェクトでも、sail コマンドが使えるようになる!
⑨まとめ
-
WindowsではLaravelの環境構築が難しい
→ WSL2 + Laravel Sailで解決! -
WSL2(Ubuntu)でLaravel Sailをセットアップ
→ Dockerで環境を統一できる! -
エイリアスを設定すれば sailコマンドを短縮できる!
-
複数のプロジェクトを管理するなら sail()関数を .bashrcに追加!