2024年11月のおすすめスクール

Windows10+Docker+WSL2+ubuntuでLaravelをインストール&プロジェクト生成

  • URLをコピーしました!

侍エンジニア塾に入ってた時に、講師のすすめでPHP Laravelの環境を構築してたものの、ついぞ構築できないまま終わってしまった悔しさがあります。

そこで改めて(いまは侍エンジニア塾生じゃないけど)Laravelのインストールのリベンジをしたいと思いました。

あぁ、こんなところに便利なサイトが。
https://readouble.com/laravel/9.x/ja/installation.html

現在の私の環境は

PHPバージョン8.1
Laravelのバージョン9
Windows 10 Pro

こんな風になっています。

目次

Docker Desktopのインストール

https://www.docker.com/products/docker-desktop/

ここから「Also available for windows and Linux」を押せば、「Docker Desktop Installer.exe」のダウンロードが開始します。

1.インストーラーの起動

2.Configurationの画面

・Use WSL 2 instead of Hyper-V
・Add shortcut to desktop

この2つにチェックが入ってることを確認して「OK」

3.Installation succeeded画面

インストール成功したら、「Close and restart」をクリック。

4.Our Service Agreement has Changed画面

この画面がでたら「I accept the terms」にチェックを入れて「Accept」

5.WLS 2 installation is incompleteの画面

WSL2 Linuxカーネルは別のMSI更新パッケージを使用してインストールされるようになりました。リンクをクリックしてカーネルアップデートをインストールしてください。

てことなので、

https://aka.ms/wsl2kernelをクリック。

以下の画面がでるので

「X64 マシン用WSL2 Linuxカーネル更新プログラムパッケージ」をクリックすると、「wsl_update_x64.msi」のダウンロードが始まる。

これを起動。Windows Subsystem for Linux Update Setupの完了。

6.Docker Desktopを起動

起動した。

Get started with Docker in a fiew easy stepsの画面で「Start」をクリック。

Ubuntuのインストール

画面左下のWindowsボタンから、Microsoft Storeを起動して、ubuntuを検索。色々でてくるので「Ubuntu 20.04.4 LTS」を「入手」

Ubuntuを起動。Enter new UNIX usernameと出てくるので任意の名前とパスワードでユーザーを作成しておくこと。

(ここでユーザーを作成せずに他のことやっちゃってエラー出た。)

Windows PowerShellからWSL2の設定

コマンドプロンプトでもいいと思うけど。WindowsマークからPowerShellを起動。

wsl -l -v

でWSLのバージョンを確認。

Ubuntu-20.04がStoppedになっててVERSIONが1のままなので、これのVERSIONを2に変更。

wsl --set-version Ubuntu-20.04 2

「変換中です。この処理には数分かかることがあります」と出る。

Docker Desktopの設定

画面右上の歯車のボタンからSettings画面を出す。

General > Use Docker Compose V2にチェックを入れて

Resources > WSL Integration > Ubuntu-20.04のスイッチをONにして

画面右下の「Apply & Restart」をクリック。

ubuntuにログインしてアップグレードを実施

sudo apt update && sudo apt upgrade -y

Ubuntu Linuxのアップデートの確認と、実際にアップグレードを行う。

Laravelのインストール

ubuntuから下記コマンドを実行。

curl -s "https://laravel.build/coffeeapp?php=81" | bash

coffeeappというプロジェクトを作成。

完了。

次に

cd coffeeapp && ./vendor/bin/sail up

このコマンドを入力してねと出てくるので、

sailコマンドを入力すれば

これでLaravelのインストールが完了する。このあと時間がかかる。

sailコマンドについて。

Laravel Sail(セイル、帆、帆船)は、LaravelのデフォルトのDocker開発環境を操作するための軽量コマンドラインインターフェイスです。 Sailは、Dockerの経験がなくても、PHP、MySQL、Redisを使用してLaravelアプリケーションを構築するための優れた出発点を提供します。Sailの本質は、docker-compose.ymlファイルとプロジェクトのルートに保存されているsailスクリプトです。sailスクリプトは、docker-compose.ymlファイルで定義されたDockerコンテナを操作するための便利なメソッドをCLIで提供します。
https://readouble.com/laravel/9.x/ja/sail.html

Sailは、macOS、Windows(WSL2)、およびLinuxと互換性のあるLaravel用のDockerを利用したローカル開発エクスペリエンスを提供します。Dockerを除いて、Sailを使用する前にローカルコンピューターにソフトウェアやライブラリをインストールする必要はありません。SailのシンプルなCLIは、Dockerの経験がなくてもLaravelアプリケーションの構築を開始できることを意味します。
https://github.com/laravel/sail

ちなみにbashエイリアスに登録することで sail と入力するだけで起動するようになる。ユーザールートにある.bashrcに記述してもよい。

$ alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

.bashrcに記述したものをすぐ反映させるにはsource ~/.bashrcと入力。

これでdockerの中でLaravelが起動してるはず。

途中、「Windowsセキュリティの重要な警告」の画面が出てきた。ファイアウォールでDockerがブロックされてるようなので「アクセスを許可する」にした。

ところが

ターミナル上にずーっとログっぽい文字が流れてていつ終わるのかわからない。

mailhog-1 | [APIv1] KEEPALIVE /api/v1/events
meilisearch-1 | [2022-07-26T05:51:2Z INFO actix_web::middleware::logger: 127.0.0.1 “GET /health HTTP/1.1” 200 22 “-” “Wgett/” 0.000032

なにか‥奇妙だ‥

ブラウザでlocalhostにアクセスすると‥

UnexpectedValueException
The stream or file “/var/www/html/storage/logs/laravel.log” could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: The stream or file

なんかエラー出ててLaravelの画面が出てくれない。

これさっきubuntuユーザーを作成せずに進めた結果らしい。

なのでubuntuでユーザーを作成するところからやり直しした。

rootユーザーをexitして。
新たに作成したユーザーでubuntuにログイン。
coffeeappはもうあるので、example-appを生成。

curl -s "https://laravel.build/example-app?php=81" | bash

Docker is not running

と出てしまう。Dockerは起動中のはずなんだけど‥PCを再起動してDockerを起動して。

ubuntuにログインして、

curl -s "https://laravel.build/example-app?php=81" | bash

を実行。

途中作成したユーザーのパスワードを入力。

DocierのContainersを見ると、example-appがRunningになってる。

ブラウザでlocalhostにアクセスすると‥

出た!


目次