【问题标题】:How to get Uwsgi working with wagtail (django)如何让 Uwsgi 使用 wagtail (django)
【发布时间】:2017-04-22 19:27:01
【问题描述】:

我正在努力跟上鹡鸰的速度。我在远程服务器上运行它。我已经安装了一个虚拟环境,然后我按照这里的步骤切换到虚拟环境并安装了 wagtail:http://docs.wagtail.io/en/v1.9/getting_started/tutorial.html

  1. pip install wagtail
  2. wagtail start rocker
  3. cd rocker
  4. pip install -r requirements.txt
  5. python manage.py migrate
  6. python manage.py createsuperuser

指南中的下一步是通过运行测试安装是否有效:

python manage.py runserver

在使用远程服务器时我不能这样做,而且服务器上已经有一个 Django 应用程序正在运行(使用 uwsgi)。

所以我现在正尝试通过 uwsgi 连接到这个 wagtail 应用程序。

使用启动现有应用程序的字符串作为模板,我已经修改它以将套接字绑定到 wagtail 应用程序:-

uwsgi --chdir=/opt/rocker/rocker --module=rocker.wsgi:application --env DJANGO_SETTINGS_MODULE=rocker.settings --master --pidfile=/tmp/rocker.pid --socket=/opt/rocker/core.sock --processes=5 --uid=www-data --gid=www-data --harakiri=20 --max-requests=5000 --vacuum --home=/opt/rocker --daemonize=/var/log/uwsgi/rocker.logroot@caspium:/etc/init.d#

但是应用程序没有启动... uwsgi 日志中的错误说明如下:-

*** Operational MODE: preforking ***
Traceback (most recent call last):
  File "./rocker/wsgi.py", line 18, in <module>
    application = get_wsgi_application()
  File "/opt/rocker/local/lib/python2.7/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
    django.setup(set_prefix=False)
  File "/opt/rocker/local/lib/python2.7/site-packages/django/__init__.py", line 22, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/opt/rocker/local/lib/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__
    self._setup(name)
  File "/opt/rocker/local/lib/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup
    self._wrapped = Settings(settings_module)
  File "/opt/rocker/local/lib/python2.7/site-packages/django/conf/__init__.py", line 116, in __init__
    raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
**django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.**
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 4617)
spawned uWSGI worker 1 (pid: 4622, cores: 1)
spawned uWSGI worker 2 (pid: 4623, cores: 1)
spawned uWSGI worker 3 (pid: 4624, cores: 1)
spawned uWSGI worker 4 (pid: 4625, cores: 1)
spawned uWSGI worker 5 (pid: 4626, cores: 1)

django.core.exceptions.ImproperlyConfigured:SECRET_KEY 设置 不能为空。

我对此进行了研究,发现了这个Django: ImproperlyConfigured: The SECRET_KEY setting must not be empty,它建议添加

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings.local")

manage.py 我做到了。这并没有解决任何问题。

我还发现了这个django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty,它说您需要在settings.py 中指定的密钥

但是在 wagtail 项目中没有 settings.py

我创建了一个并添加了一个密钥,但仍然收到错误消息。

谁能告诉我如何解决这个问题,以便我可以运行 uwsgi 连接到 wagtail,并测试它是否正常工作。

谢谢

【问题讨论】:

    标签: python django uwsgi wagtail


    【解决方案1】:

    在 Wagtail 基础项目结构中,settings.pysettings 目录中被拆分为多个文件 - 有关详细信息,请参阅http://docs.wagtail.io/en/v1.9/reference/project_template.html#django-settings。放置SECRET_KEY 的最佳位置是settings/local.py,因为您希望它不受版本控制。

    【讨论】:

    • 谢谢你gasman,没有你的帮助我会迷路的。我刚刚在设置文件夹中创建了一个名为 local.py 的文件(因为已经没有 local.py;但是有一个 dev.py、production.py 和 base.py)并简单地将这一行放在它的顶部: "SECRET_KEY = '123'" 没有语音标记。我再次运行 Uwsgi,并收到相同的错误。我需要运行任何迁移命令或任何类似的东西,你认为吗?使这些更改生效?
    【解决方案2】:

    问题出在以下文件中:

    /opt/rocker/local/lib/python2.7/site-packages/django/conf/global_settings.py
    

    这里指定了Secret Key = ''

    我添加了一个密钥,应用程序在 Uwsgi 中运行正常

    【讨论】:

    • 你在那里添加的?直接在 virtualenvs 中?
    • 这个解决方案工作正常,但它不是正确的方法。 Django 应该像所有其他 django 应用程序一样自动选择由 local,base,production,dev...py 提供的 SECRET_KEY。鹡鸰使事情变得复杂。
    【解决方案3】:

    经过多次尝试对我有用的是删除整个settings/ 文件夹并创建一个正确的settings.py 文件。如果你们来自@Wagtail 想要分开设置...你可以这样做https://simpleisbetterthancomplex.com/tips/2016/11/01/django-tip-19-protecting-sensitive-information.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 2013-10-28
      • 2016-02-06
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多