EC2 インスタンスの環境変数にいくつかのユーザー名、パスワード、およびその他の構成を設定しています。virtualenv セットアップを作成し、django サーバーを実行する場所でアクティブにしました。その django サーバーの設定ファイルで、環境変数に os.environ['variable'] としてアクセスします。
virtualenv の外では、サイトはこれらの変数に問題なくアクセスできます。printenv を実行すると、すべての変数と値が表示されます。
ただし、サーバーはそれらを見つけることができず、それらで os.environ を呼び出すと、結果としてキーエラーがスローされます。
セットアップ = ec2 インスタンス - mod_wsgi - nginx - apache
更新 これは、次の方法で django.wsgi の変数を設定することで機能し始めました。
os.environ['SQL_PASSWORD'] = 'password'
新しいec2ハードウェアにアップグレードすると、それだけで機能しなくなりました。それがどのように関連していたのかはわかりません。
さて、最終的に機能したのは、Apache構成ファイルでSetEnvを使用して変数を個別に設定することでした。運用マシンで構成ファイルをチェックアウトしたままにしておく必要があるため、まだ最適ではありませんが、ブロックが解除されます。
SetEnv SQL_PASSWORD password