我只是想弄清楚如何配置 django 以在测试生产环境中工作。我正在关注django 文档教程关于部署和 mod_wsgiDjango 集成指南。无论我做什么,我得到的都是页面未找到(404 错误),之前如果我注释掉对 httpd.conf 的修改,它工作正常并且我得到了测试页面,所以基本是正确的。
以下是我所做的相关修改:在站点的 manage.py 和 settings.py 所在的文件夹中,我创建了一个名为 apache 的文件夹,并在其中创建了一个名为 django.wsgi 的文件。文件中的内容如下:
import os
import sys
sys.path.append('/home/jason/faq')
sys.path.append('/home/jason/faq/faq')
os.environ['DJANGO_SETTINGS_MODULE'] = 'faq.settings'
import django.core.handlers.wsgi
applicaion = django.core.handlers.wsgi.WSGIHandler()
jason/faq/faq 是 manage.py 和 settings.py 所在的位置。在 httpd.conf 中:
WSGIScriptAlias / /home/jason/faq/faq/apache/django.wsgi
<Directory /home/jason/faq/faq/apache>
Order deny, allow
Allow from all
</Directory>
这是直接从 mod_wsgi 网站上的教程复制而来的。
如果我运行 python manage.py runserver,它在本地主机上运行良好。我不知道哪里出了问题,如果您需要更多信息,请告诉我在哪里可以找到它,在服务器管理任务方面我几乎是一个完全的新手。
非常感谢您的帮助!
答案1
好吧,看来我在 django.wsgi 中拼错了“application”。我在 /etc/log/apache2/error.log(适用于 ubuntu)中发现了以下错误(我之前不知道如何读取错误日志):
[DATE] [error] [client IP] mod_wsgi (pid=15912): Target WSGI script '/home/jason/faq/faq/apache/django.wsgi' does not contain WSGI application 'application'.
更改后,一切都很好。然后我测试了权限问题,看来只要我将 apache/django.wsgi 放在 apache 可以看到的地方,就没问题了(我暂时将其更改为 777)。
答案2
运行 Apache 的用户是否有权从您的个人帐户读取目录/文件?请阅读以下内容:
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User
换句话说,是权限问题。