環境変数と .env カスケード#
.env 系ファイルは symfony/dotenv の標準カスケードで読み込まれます。
読み込み順(優先度)#
.env— コミットする既定値.env.local— ローカル上書き(gitignore).env.{APP_ENV}— 環境別の既定値(コミット).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_ENV | dev/development で PSX オンザフライコンパイル+プロファイラ有効。それ以外(未設定含む)は本番扱い |
DATABASE_DSN | PDO 接続文字列。未設定なら Db レイヤーは登録されない |
DATABASE_USER | DB ユーザー名 |
DATABASE_PASSWORD | DB パスワード |
DATABASE_TIMEOUT | 接続タイムアウト秒(PDO::ATTR_TIMEOUT) |
DATABASE_READ_TIMEOUT | MySQL 読み取りタイムアウト秒(任意) |
USEPHP_SNAPSHOT_SECRET | スナップショット状態を署名する秘密鍵(本番で StorageType::Snapshot を使うなら必須) |
PROFILER_EXCLUDED_PATHS | プロファイラ除外パス(カンマ区切り・前方一致) |
HTTP_CLIENT_TIMEOUT | HTTP クライアントのリクエスト全体タイムアウト秒(任意) |
HTTP_CLIENT_CONNECT_TIMEOUT | HTTP クライアントの接続確立タイムアウト秒(任意) |
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_ID | GA4 測定 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 追加/破壊的変更/依存バージョン注記)を削除し現在形に整理
- 新規作成