laravel5.1の環境設定(DB接続設定など)は、どこが一番強い?(.env, config, cache)

laravel5.1の環境設定(DB接続設定など)は、どこが一番強い?(.env, config, cache)

laravelの環境設定値が書かれている場所は、以下の3ヶ所があります。
1, projcet_root/.env
2, projcet_root/config/database.php
3, projcet_root/bootstrap/cache/config.php

結論から先に言うと、設定が違った場合に優先される順番は、以下の通り
.env > bootstrap/cache/config.php > config/database.php

1番目の.envは隠しファイルになっており、環境毎に用意されるので一番強い。

3番目のキャッシュファイルは、php artisan config:cacheコマンドで生成される。
以降configフォルダ以下のファイルが変更されてもシステムに反映されません!
※ php artisan config:clear でbootstrap/cache/config.phpが削除される

なぜ、こんな事を調べたかというと、開発環境から本番サーバにlaravel5.1をデプロイする時に、DB接続が失敗して上手く行かなかった。

調査その1, コマンドライン上から、mysql接続できる(アカウント設定やDBサーバ情報は正しい)
調査その2, 新規インストールしたlaravel5.1では問題なくDB接続できる(新しいサーバ環境も正しい)
調査その3, つまり、アップロードしたlaravelのDB設定がおかしい。(どこの設定がおかしいのか?)

結論としては、DB設定で内部IP設定にしないとダメだったのに、外部IPを指定していた…。
問題の切り分けって、とても大切ですね(^_^;)