RRelayer
ホーム/運用

環境変数と .env カスケード#

.env 系ファイルは symfony/dotenv の標準カスケードで読み込まれます。

読み込み順(優先度)#

  1. .env — コミットする既定値
  2. .env.local — ローカル上書き(gitignore)
  3. .env.{APP_ENV} — 環境別の既定値(コミット)
  4. .env.{APP_ENV}.local — 環境別のローカル上書き(gitignore)
  • 存在しないファイルは黙ってスキップ。
  • すでに $_ENV / $_SERVER / getenv() にある値は、ベースの .env より

優先されます(プロセス環境が勝つ)。.local はコミット版を上書きします。

秘密情報は .env に書かない。 .env は通常コミット対象です。認証トークン等は gitignore 済みの .env.local に置いてください。

.env の例:

APP_ENV=dev
DATABASE_DSN=mysql:host=127.0.0.1;dbname=app;charset=utf8mb4
DATABASE_USER=app
DATABASE_PASSWORD=secret

利用できる環境変数#

変数用途
APP_ENVdev/development で PSX オンザフライコンパイル+プロファイラ有効。それ以外(未設定含む)は本番扱い
DATABASE_DSNPDO 接続文字列。未設定なら Db レイヤーは登録されない
DATABASE_USERDB ユーザー名
DATABASE_PASSWORDDB パスワード
DATABASE_TIMEOUT接続タイムアウト秒(PDO::ATTR_TIMEOUT
DATABASE_READ_TIMEOUTMySQL 読み取りタイムアウト秒(任意)
USEPHP_SNAPSHOT_SECRETスナップショット状態を署名する秘密鍵(本番で StorageType::Snapshot を使うなら必須)
PROFILER_EXCLUDED_PATHSプロファイラ除外パス(カンマ区切り・前方一致)
HTTP_CLIENT_TIMEOUTHTTP クライアントのリクエスト全体タイムアウト秒(任意)
HTTP_CLIENT_CONNECT_TIMEOUTHTTP クライアントの接続確立タイムアウト秒(任意)
LOG_LEVELロガーのしきい値。PSR-3 の 8 レベルのいずれか(既定 dev=debug/本番=info。綴り誤りは既定にソフトフェイル)
LOG_FILEロガーの出力先パス(未設定なら STDERR)
APP_LOCALE多言語化のデフォルト/アクティブロケール(既定 en
APP_LOCALESサポートロケール(カンマ区切り。既定は APP_LOCALE のみ。2 つ以上でロケール切り替えが作用)
LOCALE_COOKIEロケールを載せる Cookie 名(既定 locale。CDN セーフ・セッション不要)
LOCALE_PATH_PREFIX/{locale}/... ルーティングの opt-out(既定 true

DATABASE_* は任意で、DATABASE_DSN が設定されたときだけ Db レイヤーが DI コンテナに登録されます(データベース 参照)。

APP_LOCALE / APP_LOCALES / LOCALE_COOKIE / LOCALE_PATH_PREFIX も任意で、何も設定しなければ単一ロケール(英語)のままコスト無しで動きます(多言語化 参照)。

このサイト固有の変数#

上はフレームワーク(relayer)の変数です。このドキュメントサイト(relayer-doc)自体は、これに加えて記事ストアの TURSO_DATABASE_URL / TURSO_AUTH_TOKEN(未設定なら var/docs.db)と、次を読みます。いずれも Fly secret として設定します。

変数用途
GA_MEASUREMENT_IDGA4 測定 ID(G-XXXXXXXXXX 形式のみ受理)。設定時だけ本番の <head> に gtag.js を出力。未設定なら一切出力しない=dev/ローカルは無計測

詳細はデプロイを参照。

最終更新: 2026-05-20
変更履歴 (5)
  • サイドバー再構成: 開発カテゴリ追加に伴う order 調整
  • v0.17.0 の i18n 環境変数(APP_LOCALE/APP_LOCALES/LOCALE_COOKIE/LOCALE_PATH_PREFIX)を一覧に追記
  • 「自動配線」を「自動で DI コンテナに登録」に。直訳の配線(wiring)が不明瞭なため明確化
  • バージョン差分表記(vX.Y.Z 追加/破壊的変更/依存バージョン注記)を削除し現在形に整理
  • 新規作成