0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初めてLaravel環境構築(Windows + WSL + Docker + Sail)を行う前に知っておくべきこと3つ

Posted at

Laravelの環境構築を(Windows + WSL + Docker + Sail)で行う際に、
いくつかの問題で時間を要しました。

同じ方法で環境構築を行う初学者のために、
あらかじめ知っておくべき重要なポイントを3点紹介します。

なお、環境構築手順は以下の公式ドキュメントを参照しています。

1. Bashを実行可能なWSL2の構築が必要

Sailを使用して環境構築を行うためには、
WSL(Windows Subsystem for Linux)2でbashを実行可能なディストリビューションが必要です。

コマンドプロンプトやPowerShellでは実行できません。

現在のwslディストリビューションは以下のコマンドで調べることができます。

>wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
docker-desktop-data
docker-desktop

私の場合はWSLにdocker-desktopが設定されていたため、
プロジェクト作成に必要な要素が不足していました。

また、Ubuntuに関しても追加でcurlなどのインストールが必要となるため、
公式の「1コマンドで簡単にセットアップ!」を過信しないほうが良いかもしれません。

2. php artisan 関連のコマンドが './vendor/bin/sail artisan' に変わる

公式ドキュメントのSail on Windowsを採用する場合、
php部分が全て './vendor/bin/sail' となります。

特にSailを使用していない記事などを参照すると、
php artisan コマンドが過半数のため注意が必要です。

GPTを使用する場合も'php artisan'が最初に掲示されるため、注意が必要です。

基本的なコマンドは以下のようになります。

commands.txt
# Docker起動
./vendor/bin/sail up -d

# mysql接続
./vendor/bin/sail mysql

# 対話モード起動
./vendor/bin/sail artisan tinker

# マイグレート
./vendor/bin/sail artisan migrate

# シード実行
./vendor/bin/sail artisan db:seed

# マイグレート&データ生成やり直し
./vendor/bin/sail artisan migrate:fresh --seed

# テンプレ
./vendor/bin/sail

毎回全てを入力するのは手間だったので、
自分の場合は上記のようなcommands.txtを作成し、
よく使うコマンドを実行していました。

3. サンプルページの表示にもマイグレーションが必要

大抵のフレームワークでは、
プロジェクトを作成するとすぐにサンプルページを表示できますが、
Laravelの場合はDockerコンテナの起動後にマイグレーションの実行が必要となります。

# マイグレート
./vendor/bin/sail artisan migrate

マイグレーションを行わないと、
データベースにサンプルページ用のデータが投入されないため、
localhostへのアクセス時にMySQLエラーが発生します。

私はここで「Dockerまわりで設定失敗したのかな?」という路線から
かなり時間を浪費しました。

おわりに

現在アプレンティスの6期生として参加しています。

カリキュラムにLaravelが含まれるため、
今後の参加者も同じ課題に直面する可能性があると思いますので、
参考になれば幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?