Laravelの.envファイルを環境別に用意して読み込ませる方法

Laravel Laravel

「Laravel」で利用している設定ファイル「.env」ですが、開発を進めてくると本番環境・テスト環境・開発環境といった環境ごとに設定ファイルの内容を変えたいといった要望が発生してくるかと思います。

今回は「Laravel」の「.env」ファイルを各環境ごとに準備して、それらを読み込ませる方法をまとめましたので、ぜひ導入の参考にしてください。

環境ごとの.envファイルを作成する

まず始めに、各環境で読み込ませるための「.env」ファイルを以下のファイル名で作成(複製)します。

本番環境 :.env.prod
テスト環境:.env.test
開発環境 :.env.dev

.htaccessを編集して読み込むファイルを切り替える

次に準備したそれぞれの「.env」ファイルが、環境ごとに切り替わる(読み替える)ように設定を行ないます。方法は複数ありますが、今回は一番簡単にできる「 .htaccess 」を利用する形とします。

対応内容としては「.htaccess」に「このドメインの場合」は「APP_ENV」に「xxx」を設定する。という記述を「.htaccess」に行ないます。「xxx」の部分は、先ほど作成した.envファイルのprod(test | dev)部分にあたります。

<IfModule mod_rewrite.c>
    ・・・

    # Set APP_ENV
    SetEnvIf Host "example.jp" APP_ENV=prod
    SetEnvIf Host "test.example.jp" APP_ENV=test
    SetEnvIf Host "dev.example.jp" APP_ENV=dev
</IfModule>

こうすることで「Laravel」が自動的に「.env.{APP_ENV}」のファイルを読み込むようになるため、各環境ごとの「.env」ファイルが読み込まれることになります。

今回のように各環境の「.env」ファイルを別管理することで、「.env」ファイルをignoreすることなくgitで管理することができるようになります。
※「.htaccess」で「APP_ENV」を設定すると「.env」ファイルに記述されている「APP_ENV」は無視されるので注意してください。

それではみなさん、自由なWEBライフをお過ごしください!

タイトルとURLをコピーしました