• 投稿日:2023年06月09日 11時02分42秒
  • 更新日:2023年09月20日 10時58分54秒
Laravelをインストールし開発環境を整備する

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エンジニア学習部屋」で詳しく紹介されていますので、是非こちらをどうぞ。

【Laravel】npm run devとproductionの違いと意味!実行後の変化とは

ユーザ関係で使うテーブルを作成

php artisan migrate

日本語化

以下二つをダウンロードします。

  1. https://github.com/Laravel-Lang/lang/
  2. https://github.com/KSuzuki2016/laravel-jetstream-lang-ja

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だと思うのでご注意を。

SPECIAL THANKS

  1. Ubuntu 20.04にNginxでLaravel PHPフレームワークをインストールする方法 -Tutorial Crawler-
  2. Ubuntu20+PHP8+Laravelで開発環境を構築する -みけぽんのブログ -自称中級者おnエンジニアブログ--
  3. Docker × Laravel メールの送信処理をローカルで確認する -Qiita-
  4. Installing Jetstream -Laravel Jetstream-
  5. Laravel8の認証(Jetstream)を日本語化しよう -Zenn-
Laravelでリバースプロキシを使った場合のホスト名の指定方法
【Laravel】configファイルについて
Laravelを使って開発したものを本番環境へ
Laravelをインストールし開発環境を整備する
Laravelのコマンドを色々まとめ
UbuntuにNginx, MySQL, php をインストールする
Ubuntuに古いphp7.1をインストールする
KV(PC・SP)設定用カスタム設定コード