Apache/mod_wsgi中的Django部署问题.ImportError:无法导入设置'site.settings'

Sta*_*tan 7 python django

当我执行时

django-admin.py startproject site
Run Code Online (Sandbox Code Playgroud)

有用.
但如果我只是复制网站文件夹它不起作用.
为什么?

<VirtualHost *:80>
ServerName django.stanislavfeldman.com

# Django settings
WSGIScriptAlias / /var/www/django/wsgi_handler.py
WSGIDaemonProcess django.stanislavfeldman.com maximum-requests=200 stack-size=524288

ErrorLog /var/www/django/error.log
LogLevel warn
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

wsgi_handler.py:

import os, sys

sys.path.append('/var/www/django')

os.environ['DJANGO_SETTINGS_MODULE'] = 'site.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

Pau*_*ine 6

如果你在apache配置中有这样的东西:

WSGIScriptAlias /path /base/path/devel/your_project.wsgi
Run Code Online (Sandbox Code Playgroud)

这在your_project.wsgi中:

sys.path.append('/base/path')
os.environ['DJANGO_SETTINGS_MODULE'] = 'devel.settings'
Run Code Online (Sandbox Code Playgroud)

然后apache将查看/base/path/devel/settings.py.如果您将/ base/path/devel移动或复制到/ base/path/production,则必须在your_project.wsgi上编辑指向'production.settings'的DJANGO_SETTINGS_MODULE.


Gra*_*ton 5

确保您已阅读:

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

并观看此演示文稿:

http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations

您的问题将是一个sys.path或权限问题,这些问题都包含在上面.

您正在使用WSGIDaemonProcess指令的'maximum-requests = 200 stack-size = 524288'选项让我怀疑您是否已经引用主流文档,因为基本指令不会告诉您使用它们.相反,看起来你已经使用了一些任意人的博客文章来设置它,或者依赖于在IRC频道上给你的一些民间传说.:-)