- 投稿日:2023年06月09日 11時02分42秒
- 更新日:2023年09月20日 10時58分54秒

Laravelをインストールし開発環境を整備する
詳細
さっくりと本体やらComposerやらをインストール
cd [インストールするディレクトリ]
#Composerをインストール
--from=composer:latest /usr/bin/composer /usr/bin/composer
#Node.jsをインストール
curl -sL https://deb.nodesource.com/setup_16.x | bash -
apt-get install -y nodejs
#Lravelをインストール
composer create-project laravel/laravel:9.* [アプリ名]
cd [アプリ名]
# env作成
cp .env.example .env
# composerインストール
composer install
# authキー生成
php artisan key:generate
#migrateでchange()を使うためのもの
composer require doctrine/dbal
# ストレージへのシンボリックリンク
php artisan storage:link
#enumを使うためのもの
composer require bensampo/laravel-enum
#権限の問題でエラーが出る場合
chmod 777 storage
npm install
npm run build
ログイン機能を実装
JetStream
高機能。ざっくりメイン機能を紹介しても
- ユーザーログイン
- 登録
- メール認証
- 2段階認証
- セッション管理
- プロフィール更新
- チーム機能
こんなけある。
他のものと違ってチーム管理があるのがうれしい。
composer require laravel/jetstream
php artisan jetstream:install livewire
#チーム機能を使うならこっち
#php artisan jetstream:install livewire --teams
breeze
簡易なログイン機能で十分な場合。
composer require laravel/breeze
php artisan breeze:install
最後にnpmのインストールとビルド
npm install
npm run build
これをしないとうまくCSSやJSを読んでくれません。
npm run devしろってメッセージやサイトをよく見ますが、dockerでnginxを使っているからかこれではダメでした。
ここら辺の話は「IT嫌い社会人のWebエンジニア学習部屋」で詳しく紹介されていますので、是非こちらをどうぞ。

ユーザ関係で使うテーブルを作成
php artisan migrate
日本語化
以下二つをダウンロードします。
1.から「lang-main\lang-main\locales\ja」を「[アプリ名]\lang」の下にコピー
2.から「laravel-jetstream-lang-ja-master\laravel-jetstream-lang-ja-master\resources\lang\ja.json」を「「[アプリ名]\lang」の下にコピー
もし[アプリ名]にlangフォルダが見つからない場合は、「[アプリ名]/resources/lang」を探してみてください。
最後にLaravelの「config/app.php」を変更します。
// タイムゾーン
'timezone' => 'UTC',
↓
'timezone' => 'Asia/Tokyo',
// ロケール
'locale' => 'en',
↓
'locale' => 'ja',
// 現在のロケールで使用するロケール
'fallback_locale' => 'en',
↓
'fallback_locale' => 'ja_JP',
メールについて
まずは開発環境を
docker-compose.ymlにmailhogを追加
services:
mailhog:
image: mailhog/mailhog
ports:
- target: 8025
published: ${MAILHOG_PUBLISHED_PORT:-8025}
protocol: tcp
mode: host
コンテナを作成
docker compose up -d --build
.envファイルを編集。内容はお好みで。
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_FROM_ADDRESS="hello@example.com"
テストメール送信
docker compose exec app php artisan tinker
Mail::raw('test mail',function($message){$message->to('test@example.com')->subject('test');});
結果をhttp://localhost:8025で確認

受信を確認
本番環境へ
.envファイルに本番で使用する送信元サーバ、メールアドレスを設定します。
特に困ることはないと言いますか、サーバの設定を見てやるだけなのですが一点注意を。
MAIL_ENCRYPTION=null
↓
MAIL_ENCRYPTION=ssl
一部サイトではtlsと指定するように記載されていたりします。ここもサーバ次第なのですが、基本はsslだと思うのでご注意を。