J'ai essayé beaucoup de solutions à partir d'autres questions, mais il semble que ce soit le problème de version Django 1.11.Je n'arrive pas à lire les paramètres de base de données à partir de la configuration d'Apache et j'obtiens une erreur lors de la lecture du fichier wsgi de la variable de configuration Apache wsgi dans Django 1.11
C'est ce que j'ai.
En httpd.conf:
<VirtualHost *:80>
....
SetEnv DB_NAME XYZ
SetEnv DB_USER abc
....
</VirtualHost>
En wsgi.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)
En settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.environ['DB_NAME'],
'USER': os.environ['DB_USER'],
......
},
}
Et quand Je cours mon application, j'obtiens l'erreur interne de serveur.
C'est ce que dans le apache_error.log:
[wsgi:error] raise KeyError(key) from None\r
[wsgi:error] KeyError: 'DB_NAME'\r
}