脱初心者備忘録

LaravelのENVファイルの設定

Laravel のインストール はすでに済んでいるものとします。

ENVファイルの変更

Laravelには.envというファイルがあり、いろいろな設定ができるようになっています。
まずサイトを設定するには、このファイルの変更から行います。

//.env
APP_NAME=Laravel

APP_NAME=SiteName
APP_NAME="Site Name"

APP_NEMEは、サイト名 / ブラウザのタイトル名になります。
初期状態でLaravelと記述がありますが、自分のサイト名に変更します。
=からあけずに詰めて書きますが、半角英数字ならそのまま書けます。
ただ、日本語や、半角スペースなどを開けたいときは、ダブルクォーテーションで囲まなければいけません。

APP_ENV=local

APP_ENV=production

APP_ENVは、サイトの環境状態を指定します。
local なら、ローカル環境、production なら本番環境となります。
.envファイルを複数コピーして、読み込むenvを環境ごとに変更することで利用しやすくします。
メールサーバー情報やデータベースの名前などを、本番と使い分けできるのは便利です。
環境ごとに変更するには、app.php ファイルの下方に読み込み方を記載します。

今回は、.env.production と .env.local を作成し切替します。(わかりやすければ、.env.以降の名前は何でも良いです。)

//bootstrap/app.php

//ENV切替
if(isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME'] === '369code.tokyo')) {
    $app->loadEnvironmentFrom('.env.production');
} else {
    $app->loadEnvironmentFrom('.env.local');
}

/*
|--------------------------------------------------------------------------
| Return The Application
|--------------------------------------------------------------------------

このコードでは、サーバーのホスト名が、369code.tokyoなら、.env.productionを見てね。違うなら.env.localを見てねと書いてます。

APP_DEBUG=true

サイトがデバッグできる状態か否かです。本番環境は、falseで。
trueだとエラーがあると表示されます。
.env.local と .env.production で書き分けしてください。

APP_URL=http://localhost

サイトのURL。
.env.local と .env.production で書き分けしてください。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

データベース接続先です。
.env.local と .env.production で書き分けしてください。

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

メールサーバー情報です。
.env.local と .env.production で書き分けしてください。
Laravelのローカル環境でのメール送信におすすめなのが、Mailtrap というメールサービスです。
Mailtrap

無料で登録・利用できるSMTPテストサーバーを提供しています。
GoogleやGithubのアカウントでも利用できます。

Mailtrapにログインし、Inboxesをクリックし、SMTP Settingタブをクリックします。
Integrationsのセレクトボックスの中に「Laravel」という項目があるので、選択します。
するとENVファイルに設定する内容が表示されます。

この内容をENVファイルに記載すると、ローカル環境でのメールの送信が可能になります。
使用するメールアドレスは、ダミーでも大丈夫です。例えば、test@email.comのような嘘くさいアドレスでも問題なく動作します。
MAIL_FROM_ADDRESS は送信者のメールアドレスを記述します。

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

AWS S3を利用する人は設定する。

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

Pusherを利用する人は設定する。