简体   繁体   English

Heroku部署错误:Django_Secret_key环境变量配置不正确

[英]Heroku deployment error : ImproperlyConfigured Django_Secret_key environment variable

I am deploying my django project to Heroku. 我正在将django项目部署到Heroku。 But secret key issue keeps popping up! 但是密钥问题不断出现!

What could have been wrong? 可能出什么事了? Any suggestions would be appreciated, thank you! 任何建议,将不胜感激,谢谢!

State changed from crashed to starting 
Nov 20 16:37:53 heroku_app heroku/web.1:  Starting process with command `gunicorn config.wsgi:application --env DJANGO_SETTINGS_MODULE='config.settings.production'`  
Nov 20 16:37:56 heroku_app heroku/web.1:  State changed from starting to up 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:55 +0000] [4] [INFO] Starting gunicorn 19.5.0 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:55 +0000] [4] [INFO] Listening at: http://0.0.0.0:46247 (4) 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:55 +0000] [4] [INFO] Using worker: sync 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:55 +0000] [10] [INFO] Booting worker with pid: 10 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:55 +0000] [11] [INFO] Booting worker with pid: 11 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:56 +0000] [10] [ERROR] Exception in worker process 
Nov 20 16:37:56 heroku_app app/web.1:  Traceback (most recent call last): 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 517, in spawn_worker 
Nov 20 16:37:56 heroku_app app/web.1:      worker.init_process() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 122, in init_process 
Nov 20 16:37:56 heroku_app app/web.1:      self.load_wsgi() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 132, in load_wsgi 
Nov 20 16:37:56 heroku_app app/web.1:      self.wsgi = self.app.wsgi() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi 
Nov 20 16:37:56 heroku_app app/web.1:      self.callable = self.load() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
Nov 20 16:37:56 heroku_app app/web.1:      return self.load_wsgiapp() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
Nov 20 16:37:56 heroku_app app/web.1:      return util.import_app(self.app_uri) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 357, in import_app 
Nov 20 16:37:56 heroku_app app/web.1:      __import__(module) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/config/wsgi.py", line 31, in <module> 
Nov 20 16:37:56 heroku_app app/web.1:      application = get_wsgi_application() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
Nov 20 16:37:56 heroku_app app/web.1:      django.setup() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/__init__.py", line 17, in setup 
Nov 20 16:37:56 heroku_app app/web.1:      configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 55, in __getattr__ 
Nov 20 16:37:56 heroku_app app/web.1:      self._setup(name) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 43, in _setup 
Nov 20 16:37:56 heroku_app app/web.1:      self._wrapped = Settings(settings_module) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 99, in __init__ 
Nov 20 16:37:56 heroku_app app/web.1:      mod = importlib.import_module(self.SETTINGS_MODULE) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in import_module 
Nov 20 16:37:56 heroku_app app/web.1:      __import__(name) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/config/settings/production.py", line 24, in <module> 
Nov 20 16:37:56 heroku_app app/web.1:      SECRET_KEY = env('DJANGO_SECRET_KEY') 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/environ/environ.py", line 111, in __call__ 
Nov 20 16:37:56 heroku_app app/web.1:      return self.get_value(var, cast=cast, default=default, parse_default=parse_default) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/environ/environ.py", line 253, in get_value 
Nov 20 16:37:56 heroku_app app/web.1:      raise ImproperlyConfigured(error_msg) 
Nov 20 16:37:56 heroku_app app/web.1:  ImproperlyConfigured: Set the DJANGO_SECRET_KEY environment variable 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:56 +0000] [11] [ERROR] Exception in worker process 
Nov 20 16:37:56 heroku_app app/web.1:  Traceback (most recent call last): 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 517, in spawn_worker 
Nov 20 16:37:56 heroku_app app/web.1:      worker.init_process() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 122, in init_process 
Nov 20 16:37:56 heroku_app app/web.1:      self.load_wsgi() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 132, in load_wsgi 
Nov 20 16:37:56 heroku_app app/web.1:      self.wsgi = self.app.wsgi() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi 
Nov 20 16:37:56 heroku_app app/web.1:      self.callable = self.load() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
Nov 20 16:37:56 heroku_app app/web.1:      return self.load_wsgiapp() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
Nov 20 16:37:56 heroku_app app/web.1:      return util.import_app(self.app_uri) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 357, in import_app 
Nov 20 16:37:56 heroku_app app/web.1:      __import__(module) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/config/wsgi.py", line 31, in <module> 
Nov 20 16:37:56 heroku_app app/web.1:      application = get_wsgi_application() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
Nov 20 16:37:56 heroku_app app/web.1:      django.setup() 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/__init__.py", line 17, in setup 
Nov 20 16:37:56 heroku_app app/web.1:      configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 55, in __getattr__ 
Nov 20 16:37:56 heroku_app app/web.1:      self._setup(name) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 43, in _setup 
Nov 20 16:37:56 heroku_app app/web.1:      self._wrapped = Settings(settings_module) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 99, in __init__ 
Nov 20 16:37:56 heroku_app app/web.1:      mod = importlib.import_module(self.SETTINGS_MODULE) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in import_module 
Nov 20 16:37:56 heroku_app app/web.1:      __import__(name) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/config/settings/production.py", line 24, in <module> 
Nov 20 16:37:56 heroku_app app/web.1:      SECRET_KEY = env('DJANGO_SECRET_KEY') 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/environ/environ.py", line 111, in __call__ 
Nov 20 16:37:56 heroku_app app/web.1:      return self.get_value(var, cast=cast, default=default, parse_default=parse_default) 
Nov 20 16:37:56 heroku_app app/web.1:    File "/app/.heroku/python/lib/python2.7/site-packages/environ/environ.py", line 253, in get_value 
Nov 20 16:37:56 heroku_app app/web.1:      raise ImproperlyConfigured(error_msg) 
Nov 20 16:37:56 heroku_app app/web.1:  ImproperlyConfigured: Set the DJANGO_SECRET_KEY environment variable 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:56 +0000] [11] [INFO] Worker exiting (pid: 11) 
Nov 20 16:37:56 heroku_app app/web.1:  [2016-11-20 05:37:56 +0000] [10] [INFO] Worker exiting (pid: 10) 

This is my wsgi.py file: 这是我的wsgi.py文件:

import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")
application = get_wsgi_application()

And this is my Procfile: 这是我的Procfile:

web: gunicorn config.wsgi:application --log-file -

This first few lines of my production.py as extended setting file: 我production.py的前几行作为扩展设置文件:

from __future__ import absolute_import, unicode_literals
from boto.s3.connection import OrdinaryCallingFormat
from django.utils import six


from .common import *  # noqa

# SECRET CONFIGURATION

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

# django-secure
# ------------------------------------------------------------------------------
INSTALLED_APPS += ('djangosecure', )

SECURITY_MIDDLEWARE = (
    'djangosecure.middleware.SecurityMiddleware',
)
# Use Whitenoise to serve static files
# See: https://whitenoise.readthedocs.io/
WHITENOISE_MIDDLEWARE = (
    'whitenoise.middleware.WhiteNoiseMiddleware',
)

I've got the answer by myself again. 我自己又得到了答案。

Problem turned out to be Django_Secret_Key missing from "Config Var" in Heroku//settings/. 问题原来是Heroku // settings /中“ Config Var”中缺少Django_Secret_Key。

Solution was: - echo .env >> .gitignore - Edit all the security info it might need in your local .env file - make sure there is no config var on the Heroku that has blank value, otherwise the next step can't over-write the current blank. 解决方案是: echo .env >> .gitignore在本地.env文件中编辑它可能需要的所有安全信息-确保Heroku上没有空白值的配置变量,否则下一步不能结束-写当前的空白。 - in Heroku CLI: heroku config:push -在Heroku CLI中: heroku config:push

Attempted solution: Use Heroku API. 尝试的解决方案:使用Heroku API。 But only way use it manually is through CURL command. 但是手动使用它的唯一方法是通过CURL命令。 What a pain. 真痛苦 Maybe I could design some interface to automate the CURL command typing process or send out RESTful configure commands. 也许我可以设计一些接口来自动执行CURL命令键入过程,或者发出RESTful配置命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Heroku django.core.exceptions.ImproperlyConfigured:设置 SECRET_KEY 环境变量 - Heroku django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable 在 VS 代码中运行有关虚拟环境和“DJANGO_SECRET_KEY”的项目时出错 - Error in running a project regarding virtual environment and "DJANGO_SECRET_KEY" in VS code 使用 appengine “django.core.exceptions.ImproperlyConfigured:设置 SECRET_KEY 环境变量”在 Google 云上部署 Django 应用程序时出错 - Error in deploying Django app on Google cloud using appengine "django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable" django.core.exceptions.ImproperlyConfigured:设置SECRET_KEY环境变量 - django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable windows 中的设置命令不适用于 django SECRET_KEY | django.core.exceptions.ImproperlyConfigured:设置 SECRET_KEY 环境变量 - set command in windows not working for django SECRET_KEY | django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable 环境变量 Django:配置不当:SECRET_KEY 设置不能为空 - Environment Variables Django: ImproperlyConfigured: The SECRET_KEY setting must not be empty 使用 django-environ 配置不当的 SECRET_KEY 错误 - ImproperlyConfigured SECRET_KEY error using django-environ Django:SECRET_KEY的环境变量不起作用 - Django: environment variable for SECRET_KEY not working Celery 上的 Heroku 应用程序错误:raise ImproperlyConfigured(“SECRET_KEY 设置不能为空。”) - Heroku application error on Celery: raise ImproperlyConfigured(“The SECRET_KEY setting must not be empty.”) Django,Celery Supervisor:秘密密钥错误:django.core.exceptions.ImproperlyConfigured:SECRET_KEY设置不得为空 - Django, Celery Supervisor: Secret Key Error: django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM