Laravel5の.envの設定

2016.4.3 (日)

.envファイルの設定

.envファイルにはいわゆる設定情報が載っています。このパラメーターを適切に設定します。とはいっても基本動作はデフォルトの設置で殆ど問題ありません。なので最低限の設定をしておきます。

実行環境の設定

APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:rbpkStCQym4xRoaWtMlcLsi2mbPDJR1nJvB/6YluyIw=
APP_URL=http://localhost

APP_ENV=localはこのままで大丈夫です。APP_DEBUGも開発中はtrueにしておきます。デプロイ時にはfalseにするのが通常のやり方です。APP_KEYはアプリケーションの様々な局面で使用します。オリジナルのkeyを作成するには、

$ php artisan key:generate

を実行して新しいkeyを発行します。
keyは新しく生成した方がセキュリティー上は安全でしょう。またプロダクト環境ではまた新たに生成した方がよいです。
またこのkeyをアプリケーションでどのように設定するかによりますが、生成は開発のいちばん最初にしておくのがよいです。途中で変えると思わぬエラーになってしまう場合もあります。

APP_URLは実行環境のURLを設定します。問題がなければlocalhostのままでも大丈夫です。

DBの設定

Databaseの設定はデフォルトではmysqlになっています。これも適切な情報を設定すればよいかと思います。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_CHARSE=utf8 ← 追加
DB_COLLATION=utf8_general_ci ← 追加

個人的なところですが、文字コードはutf8とコレーションをutf8_general_ciで設定ということでいいんじゃないかということにしてます。Laravelのデフォルトだとutf8_unicode_ciあたりだったような気がします。
(追伸: DBの格納できる文字列問題でやっぱりutf8_general_ciで設定した方がよさそうです。2017-09-07)
.envに新しい定義値を追加したら、config/database.phpの方で値を受取るように設定しておいてください。

// config/database.php
        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => env('DB_CHARSE', 'utf8'), ←ここ追加
            'collation' => env('DB_COLLATION', 'utf8_unicode_ci'), ←ここ追加
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

日本語の設定

config/app.phpには.envと連携してLaravelのいろいろな定義値が設定されています。開発時とデプロイ時を分けて設定すべきところですが、ここではまずは開発環境を念頭において設定してゆきます。
localeをenからjaに変更しておきます。優先的に日本語を拾うようになります。

'locale' => 'ja',
'fallback_locale' => 'ja',