本番環境での .env ファイル利用
本番環境での .env ファイルの利用について
インストール完了後、インストールディレクトリにデータベースの接続情報等が設定された .env ファイルが生成されます。 .env ファイルは、開発用途での環境変数を設定するためのものであり、本番環境での使用は推奨されません。 本番環境では、環境変数をサーバ設定ファイルに設定することを推奨します。 サーバ設定ファイルに環境変数を設定することにより、環境変数が外部に暴露される危険性が減り、安全に運用できます。
Apache での設定例
httpd.conf や、 .htaccess ファイルに設定します。
SetEnv APP_ENV prod
SetEnv APP_DEBUG 0
SetEnv DATABASE_URL pgsql://dbuser:password@127.0.0.1/cube4_dev
SetEnv DATABASE_SERVER_VERSION 10.5
SetEnv ECCUBE_AUTH_MAGIC 8PPlCHZVdH5vbMkIUKeuTeDHycQQMuaB
SetEnv ECCUBE_ADMIN_ALLOW_HOSTS []
SetEnv ECCUBE_FORCE_SSL false
SetEnv ECCUBE_ADMIN_ROUTE admin
SetEnv ECCUBE_COOKIE_PATH /
参考: Apache HTTP サーバ バージョン 2.4 - SetEnv ディレクティブ
サーバ設定ファイルに環境変数を設定した場合の注意事項
サーバ設定ファイルに環境変数を設定した場合、 以下の機能を管理画面から設定することができません。
サーバ設定ファイルの環境変数を変更し、キャッシュクリアする必要がありますのでご注意ください。
- 管理画面→オーナーズストア→テンプレート
- 管理画面→設定→システム設定→セキュリティ管理
bin/console コマンドの使用について
bin/console
コマンドを使用する場合、通常は .env ファイルから環境変数を取得します。
.env を使用しない場合は、 shell の環境変数に設定をします。
この場合、 .bashrc
などの shell の設定ファイルのパーミッションは 600 など、オーナー以外は読み書きできない設定にしておくことを強く推奨します。
## .bashrc の設定例
export APP_ENV="prod"
export APP_DEBUG="0"
export DATABASE_URL="pgsql://dbuser:password@127.0.0.1/cube4_dev"
export DATABASE_SERVER_VERSION="10.5"
export ECCUBE_AUTH_MAGIC="8PPlCHZVdH5vbMkIUKeuTeDHycQQMuaB"
export ECCUBE_ADMIN_ALLOW_HOSTS="[]"
export ECCUBE_FORCE_SSL="false"
export ECCUBE_ADMIN_ROUTE="admin"
export ECCUBE_COOKIE_PATH="/"