侍エンジニア塾に入ってた時に、講師のすすめでPHP Laravelの環境を構築してたものの、ついぞ構築できないまま終わってしまった悔しさがあります。
そこで改めて(いまは侍エンジニア塾生じゃないけど)Laravelのインストールのリベンジをしたいと思いました。
あぁ、こんなところに便利なサイトが。
https://readouble.com/laravel/9.x/ja/installation.html
現在の私の環境は
PHPバージョン8.1
Laravelのバージョン9
Windows 10 Pro
こんな風になっています。
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にアクセスすると‥
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にアクセスすると‥
出た!