0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[windows]Laravel sailでの環境構築~git cloneして再現確認まで

Last updated at Posted at 2023-04-20

Laravel+xamppで簡単なアプリ作成をしてみたが、ちゃんと開発するならdockerを使うのが一般的らしい
→sailってやつで比較的簡単にdockerを使えるらしい
→どこが簡単やねん!となりまくったので備忘録

環境

Windows10
VScode
docker desktopをインストール済

基本的にVScode経由でpowershellを操作

プロジェクト作成ができない

https://laravel.com/docs/9.x/installation#getting-started-on-windows
公式ドキュメントの通りに進めたかった。
LinuxというPowershellの亜種みたいなの使わないといけないらしい(という認識)、ほーん…

wsl --install、よし、これでプロジェクト作成できるな!

powershell
curl.exe -s https://laravel.build/example-app | bash
Processing fstab with mount -a failed.

<3>WSL (83) ERROR: CreateProcessEntryCommon:370: getpwuid(0) failed 2
<3>WSL (83) ERROR: CreateProcessEntryCommon:374: getpwuid(0) failed 2
<3>WSL (83) ERROR: CreateProcessEntryCommon:577: execvpe /bin/bash failed 2
<3>WSL (83) ERROR: CreateProcessEntryCommon:586: Create process not expected to return

→そもそも必要なもの(ディストリビューション)が足りていなかった
Microsoft StoreからUbuntuをインストール。

powershell
wsl.exe -s Ubuntu

~| bash系のコマンドをUbuntuで実行するように設定する。
wslでUbuntuの中に入って実行したらいけるらしい?

Ubuntuが必要とか公式ドキュメントになかったぞ!

WSL
curl.exe -s https://laravel.build/example-app | bash

プロジェクトが作成できた。次はsail upだ!

WSL
cd example-app && ./vendor/bin/sail up
-bash: ./vendor/bin/sail: No such file or directory

→Dockerと連携できていなかった。Docker desktopを起動後、
resourceのところからUbuntuにチェックを入れて、
作ったプロジェクトを削除して再度curl~を実行
正直ここまでに一番時間がかかった

最初の最初に打つコマンドでエラー出ても解決してくれる記事は少ない

Linuxナニモワカラナイ

色々遅い

WSLがwindowsにマウントしてwindowsが……お互いに読み込みあうから時間かかるらしい(?)
WSLの中にフォルダを作ったら一方向に絞れるから早い、なるほど

パーミッションってなに?

CLIでの操作慣れてないしGUIでやっちゃお
エクスプローラーからLinux->Ubuntu->homeまで開いてlaravel-pjって名前のフォルダ作って~
「この操作を実行するアクセス許可が必要です」

?????

パーミッション(権限)の関係でターミナルからUbuntu内でやれってことっぽい、しゃあねえな…
UbuntuのファイルパスとかググってCLIからプロジェクト作成

WSL
sail artisan breeze install

とりあえず最低限のひな型はできたかなってことでgithubにプッシュ

Git clone

こんな記事を見かけて、気になったのでやってみた。
上の記事では、sail upcomposer installの前に実行できるように
vendorを.gitignoreから外すことで対応している。
vendorディレクトリがgit hubにあるの気持ち悪いけど簡単なのは上のやり方。

一方で、そもそもUbuntuにcomposerなどをインストールするやり方もあり、
こちらの方が依存パッケージをgit hubに上げない点で丁寧なのかなと思う。
環境を揃えるためのDockerなのに結局個人単位でインストールするのなんだかな~って気もする。

基本的にこれに書いてある範囲で当てはまることをすれば良いが、何のためにそのコマンドを打っているのかは少しでも調べながらやるべきではある。

「Laravelは初心者向けじゃない」、明らかに初心者にはオーバースペックだし学習コスト高くない?って感じる部分もあるが、初心者にとっては「教材豊富」「理解してなくてもとりあえず真似したら動く」の要素は結構大きいのでLaravelを選択するのも間違いではないよな、と思う。

真似したら動くはずがプロジェクト作成だけに2日かかったの思うと間違ってるんじゃないか?

パーミッションまわり

git cloneできないんだけど!とかはこれが原因なことが多い。
llコマンドで権限の確認ができる。

簡単な方法(≠正しい方法)
とりあえずこうやればできたよ、を書いていく

WSL
sudo git clone

sudoコマンドでgit cloneは通るようになる

composer updateとかでsudo使うな!って警告出されるのと、
このままだとgitがファイルの差異とかを認識できない。

なので、chmodコマンドで権限を書き換える。
example-appの中身に対して再帰的に権限を書き換えることでgitもうまくいく…はず

WSL
~/laravel-pjs/example-app $cd ..
~/laravel-pjs $ chmod -R 777 example-app

ただし777は結構リスクもあり、ルートディレクトリでやるとエラーの原因になるらしい

まとめ

(windows cmd/powershellのみを使ってきた人間にとって)sailは簡単じゃない。
多少なりLinuxの理解を求められるため。

とりあえず使って動くことを確認する、という目標は達成できたが、結局dockerのイメージとかcompose.ymlの書き方は何もわからないままなので、また改めて勉強する必要はある。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?