Apache設定からデータベース設定を読み込み中にエラーが発生しました。私は他の質問から多くの解決策を試しましたが、これはDjango 1.11のバージョンの問題のようです。Django 1.11でApache config variable trough wsgiを読み込めませんでした。
これは私が持っているものです。 httpd.confの
:wsgi.pyで
<VirtualHost *:80>
....
SetEnv DB_NAME XYZ
SetEnv DB_USER abc
....
</VirtualHost>
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.environ['DB_NAME'],
'USER': os.environ['DB_USER'],
......
},
}
そして:settings.pyで
import os, sys
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
PROJECT_DIR = os.path.abspath(os.path.join(BASE_DIR, '..'))
sys.path.append(PROJECT_DIR)
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
import django.core.handlers.wsgi
_application = django.core.handlers.wsgi.WSGIHandler()
env_variables_to_pass = ['DB_NAME', 'DB_USER', ]
def application(environ, start_response):
for var in env_variables_to_pass:
os.environ[var] = environ.get(var, '')
return _application(environ, start_response)
私は私のアプリケーションを実行すると、私は '内部サーバーのエラー'を取得しています。
これは何apache_error.logである:
[wsgi:error] raise KeyError(key) from None\r
[wsgi:error] KeyError: 'DB_NAME'\r
}