Laravel環境構築(実践版)

資料収集中

公式

注意

  • ucanさんの作ってくれたテンプレートがとても使いやすい。
  • Docker環境とLaravelまでを1コマンドで環境構築してくれる!
  • 通常docker compose buildをしてdockercompose up -dと一連の定形コマンドを入力するが、手間を省くためにMakefileを作ってくれている。
  • これは1コマンドで上記のような一連のコマンドが実行されるので、とても楽になる。ただし、本来のdocker composeのコマンドを忘れてしまうので注意。
  • DBの初期設定は、DB名:laravel、ユーザー名:phper、パスワード:secret

テンプレートから環境構築

流れ

  1. あらかじめ、サーバーにログインしておく(自分の場合はrootで操作)
  2. ucanさんのテンプレをクローンする
  3. make create-projectする
  4. .gitを削除する
  5. 必要があればNode.jsなどを追加インストールする

環境のインストール

テンプレートをダウンロード

ucan-labさんのテンプレートをダウンロード

git clone https://github.com/ucan-lab/docker-laravel

フォルダ名を変更(任意)

練習用なのでsample1に変更

mv docker-laravel sample1

構築

テンプレに基づき、PHP、NGINX、MySQL、Laravel環境を構築する。

cd sample1
make create-project

Gitの削除

このまま使用するとucanさんのGitにプッシュすることになり大迷惑。Git情報を削除する。

rm -r -I .git

追加のインストール

Node.jsとnpm、Laravel Breezeが必要であれば、追加でインストールする。

既存のプロジェクトをコピーしてくる

すでに開発しているLaravel Breezeのプロジェクトをコピーして構築する。

流れ

  • ucanさんのテンプレをクローンする
  • srcフォルダを作ってプロジェクトをコピーする
  • make installする
  • appコンテナに入る
  • Node.jsとnpmの最新版を入れる
  • php artisan migrate
  • npm install
  • npm run build

テンプレートをダウンロード

ucan-labさんのテンプレートをダウンロード

git clone https://github.com/ucan-lab/docker-laravel

フォルダ名を変更(任意)

練習用なのでsample1に変更

mv docker-laravel sample1

プロジェクトのコピー

srcフォルダを作ってプロジェクトをコピーする

cd sample1
mkdir src

何らかの方法を使ってプロジェクトをコピー

cp -r ../hello-laravel/src .

環境のインストール

make install

追加のインストール

Node.jsとnpm、Laravel Breezeが必要であれば、追加でインストールする。

適用

マイグレーションを実行。

php artisan migrate

package.jsonファイルにリストされているパッケージ(依存関係)をインストール⚠要調査

npm install

package.jsonファイル内のscriptsオブジェクトに定義されたbuildスクリプトを実行⚠要調査

npm run build

追加のインストール(任意)

appコンテナに入る

以下の作業はappコンテナ内で行う。

  • Node.jsとnpmのインストール
  • Laravel Breezeのインストール
make app

Node.jsとnpmのインストール

aptでインストールが簡単だが、結構古いバージョンがインストールされてしまう為、nパッケージを使って最新版をインストールする。しかし、nパッケージを動かすにはNode.jsとnpmが必要というパラドクス😿

  1. aptでNode.jsとnpmをインストール
  2. nパッケージをインストール
  3. nパッケージでNode.jsとnpmのお好みのバージョンをインストール
  4. aptでインストールしたNode.jsとnpmをアンインストール

aptでNode.jsとnpmをインストール

古くても構わないのでとりあえずインストール。

apt update
apt install nodejs npm -y

-y…コマンドの途中でYesNoを問われた場合、全てyesとする。

nパッケージをインストール

npm install -g n

最新版のNode.jsとnpmをインストール

ここでは最新版ではなく、LTS版をインストール。(LTS…Long Term Support(長期サポート)版)

n lts

または

n stable # 安定版をインストール
n latest # 最新版をインストール
n 12.8.1 # バージョンを指定してインストール

n ls-remote # バージョン一覧を表示(最新から20件)

パスの修正

インストール後、「nodeコマンドの場所が変更され、古い場所が現在のシェルに記憶されている可能性があります。」という旨のメッセージが表示された場合は指示通りのコマンドを入力

hash -r

aptでインストールした古いNode.jsとnpmを削除

apt purge nodejs npm -y

確認

インストールが無事されたか、パスが通ることも含めて確認。

node -v
npm -v
n --version

Laravel Breezeのインストール

Laravel Breezeのインストール

引き続きappコンテナ内で作業を続ける。

composer require laravel/breeze --dev

–dev…公式では指定しているが、一般の記事では指定していない。⚠要調査

Bladeのインストール

Laravelのトップページに認証機構周りのセットを追加

php artisan breeze:install blade

適用(省略して良さそう)

公式では下記のコマンドでBlade関連のファイルを適用するように書いてあったが、実行しなくても動作しているようだ。⚠要調査:npm run dev は実行しないほうが良さそうだ

php artisan migrate
npm install
# npm run dev これは実行するとおかしくなる。Dockerと競合している??

あとから追加でしたこととりあえずまとめ

コメントする