【问题标题】:Stuck with deploying django with apache + mod_wsgi坚持使用 apache + mod_wsgi 部署 django
【发布时间】:2012-06-17 13:45:20
【问题描述】:

我收到 500 内部服务器错误,并在它写入的日志文件中:

[Thu Jun 14 16:30:22 2012] [error] [client 127.0.0.1] ImportError: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings

这是我的 httpd.conf:

ServerName localhost

<VirtualHost *:80>
    ServerAdmin ttt@mysite.com
    ServerName mysite.com
    ServerAlias www.mysite.com
    DocumentRoot /var/www/mysite/
    LogLevel warn
    WSGIDaemonProcess processes=2 maximum-requests=500 threads=1
    WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
    Alias /media /var/www/mysite/mysite/static/media/
</VirtualHost>

wsgi.py:

import os

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

【问题讨论】:

  • 您缺少 WSGIProcessGroup。你的应用程序不会被委托给你所拥有的守护进程组。
  • 不,这不是问题...我的系统路径是问题
  • sys.path 很可能是您的问题,但您仍然缺少 WSGIProcessGroup 指令。见code.google.com/p/modwsgi/wiki/…

标签: django deployment apache2 mod-wsgi error-log


【解决方案1】:

mod-wsgi 文档 http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango 和 Django 部署文档 https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/ 都涵盖了这个问题,其中指出该项目必须在您的 Python 路径上。您可以使用WSGIPythonPath 指令或在Django 文档中的WSGIDaemonProcess 指令中设置python-path。或者,您可以将其作为 mod-wsgi 文档状态添加到 wsgi 文件中的 sys.path

【讨论】:

  • 我得到这个错误:WSGIPythonPath 不能出现在 部分
  • 我的错误。我已经更新了答案以反映您可以在WSGIDaemonProcess 中设置路径。
  • ie: import sys # 虚拟环境路径site.addsitedir('/home//virtualenv/.../lib/python2.7/site-packages/')
猜你喜欢
  • 2011-07-14
  • 1970-01-01
  • 2014-07-31
  • 2011-02-05
  • 2013-06-08
  • 1970-01-01
  • 2012-12-20
  • 2012-12-19
  • 2021-01-15
相关资源
最近更新 更多