書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

Laravel Sail + スターターキットでプロジェクトを作る2つの方法【Windows・WSL】

Laravel

Laravel Sail環境で「スターターキットが入れにくい!」と思ったことはありませんか?

私はWindowsで開発していて、最近はWSL→Laravel Sailを使うことが多いです。

Laravel Sailは本番環境(Linux)と同じ構成で動かせるのが嬉しい。ですが、Laravel Sailでは、スターターキットを使ったプロジェクト作成がやや面倒です。

なぜなのか、どうすればいいのか、理由と対策を書きました。

Laravel Sailでスターターキットをいれる方法に悩んだら、見てみてください。

なぜLaravel Sailではスターターキットが入れにくいのか

まず認証用ツールの変遷からちょっと説明しますね。

以前はLaravel Breezeが認証用ライブラリとして使われていました。ですがLaravel 12以降は、スターターキット(Livewire / React / Vue/Svelte)が登場しました。

Breezeとスターターキットには、下記の違いがあります。

  • Laravel Breeze→既存のLaravelプロジェクトに追加するComposerパッケージだった
  • スターターキット→Laravelプロジェクト一式として提供されるようになった

形態が変わった、ということです。ちなみにPackagistのスターターキットのページには、”project”と明記されています。

Composerパッケージであれば、プロジェクトをつくって、後からパッケージを入れることも可能です。ですがプロジェクトの場合は、既存のLaravelプロジェクトへ後から追加するコマンドはありません。

そのため、基本的にはプロジェクト作成時にスターターキットを選ぶ必要があります。こういった流れになります。

  1. PHPとComposerをインストールする
  2. Laravelスターターキットを使ってプロジェクト作成する

ですが、Laravel Sailの場合は、ここで困ったことになります。

Laravel Sailは、プロジェクトを作成した後でなければ利用できません。つまり、プロジェクト作成時には、別途PHPやComposerを用意する必要があるのです。

Laravel Sailの売りは、「ComposerやPHPなどインストール不要」というものでしたが、、この便利さが崩れてしまうわけです。

Laravel Sail環境でスターターキットを使いたいなら

ではLaravel Sail環境でスターターキットを使いたいならどうするか。

Windowsの場合はWSL環境を作成した後に、ざっくり2つの方法が考えられます。

普通にPHPとComposerを入れる

下記コマンドをWSL内で実行して、WSL内にPHP・Composer・Laravelインストーラーを入れます。

この後、スターターキットを使って、Laravelプロジェクトを作成します。

プロジェクトに移動し、Laravel Sailをインストールします。

プロジェクトの作成はローカルツール(Windowsの場合はWSL)で行い、プロジェクト作成後はSailを使うという方法です。

ちなみに、ここまでするならLaravel Sailを使わず、普通にWSL内で開発を進めるという手もあります。

一時的なDockerコンテナでComposerを使う

PHPやComposerをWSL内に入れたくない場合は、PHPとComposerが入った一時的なDockerコンテナを使う方法もあります。

方法を説明します。まずdockerコマンドを実行します。

  • LARAVEL_INSTALLER_DEFER_HOOKS=1 は、プロジェクト作成時の初期設定(install:features)を後回しにする指定です。この初期設定にはnpmが必要ですが、Composer用の一時コンテナにnpmは入っていません。そのため後回しにして、Sailを起動してから実行します。
  • laravelsail/php84-composer は、PHPとComposerが入ったSail公式のDockerイメージです。執筆時点では8.4までしか公開されていないため、8.4を使っています。プロジェクトを作るために一時的に使用しています。

次にプロジェクトに移動

Laravel Sailインストール。--with には必要なサービスをカンマ区切りで指定します。

この後の流れ

2つのDockerコマンドが終わるとcompose.yamlまで用意できています。ここからはSailのコンテナ側で仕上げます。

Laravel Sailを起動します。

オプションを選択します。

二段階認証・パスキー等の選択画面が出るので、必要な機能を選択します。上下の矢印キーで項目を移動します。デフォルトではすべて選択になっていますが、選択解除したい場合はスペースキーを押します。

選択が終わったらEnterキーを押して確定します。

どちらがおすすめ?

現時点では、最初の方法(WSL内にPHPとComposerをいれる)がおすすめだと推測されます。

ただ、2つ目の方法なら、WSL内にPHPやComposerを入れずに済みます。環境を増やしたくない場合には便利です。

私は2つ目の方法が好きですが、公式に掲載されているわけではありません。うまくいかない場合は、1つ目の方法に切り替えてください。

さいごに

Laravel Sailはかつて、Laravelプロジェクトを作成する公式のインストール方法として案内されていました。その後、現在のスターターキットを利用したインストール方法が中心となりました。

どうもLaravel Sailの位置づけが宙ぶらりんになった感はあります^^;

ただやはり、過去のツールもすべてキレイに移管させるのは大変なのだろうと思います。

Laravel Sailとスターターキットを両方使いたい場合は、今回お伝えした内容を参考にしていただければと思います。

新しく記事を作った時など、Xにてお知らせしています。また情報を知りたいと思ってもらえたら、Xアカウントフォローしてくださいね。

Laravel Laravel Sailで環境構築! Laravelバージョンアップ・ニュース Laravel認証機能

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版Laravel13への対応に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel13に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した本を書きました。 書店やAmazon等のオンラインショップにて販売中
最新版Laravel13対応用サポートガイド(PDF)あり

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。
最新版Laravel13対応用
サポートガイド(PDF)あり

書籍の詳細を見てみる
Twitter始めました。
Junkoラボ
タイトルとURLをコピーしました