IT-Q

.env ファイルは何のためにあり、なぜ Git にコミットしないのですか。

アクセスできる全員に鍵が渡るからです。さらに厄介なのは、あとから消しても Git の履歴に残ること。漏れたらファイルの削除では足りず、鍵そのものの再発行が必要になります。

面接官が見ているのは環境差分と秘密情報の扱い。事故に直結する基礎知識。

よくある答えと、面談でどう見られるか

  • 環境ごとに異なる設定と秘密情報を置く場所で、DBパスワードやAPIキーが含まれるため
    その通りです。一度コミットすると履歴に残るので、消しても鍵の再発行が必要になります。
  • 開発中だけ使うファイルで、本番には存在しないため
    本番にも必要です。サーバー上に置いて権限を絞ります。
  • ファイルサイズが大きくなりがちでリポジトリが重くなるため
    理由はサイズではなく、中身が秘密情報だからです。
  • Laravel が自動生成するので、コミットしても上書きされてしまうため
    自動生成されるのは .env.example の方です。

模範解答

DB 接続情報、API キー、アプリケーションキーなど、環境ごとに違い、かつ外に出てはいけない値を置く場所です。リポジトリに入れると、アクセスできる全員に渡ります。さらに厄介なのは、あとから削除しても Git の履歴には残ることです。漏れた場合はファイルを消すだけでは足りず、鍵そのものを再発行する必要があります。コミットするのは .env.example(キー名だけで値は空)です。