我只是想弄清楚如何配置 django 以在测试生产环境中工作。我正在关注django doc on deployment 的教程和 mod_wsgi guide to django integration。无论我做什么,我得到的只是页面未找到(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,它适用于本地主机。我不知道可能出了什么问题,如果您需要更多信息,请告诉我从哪里得到它,在服务器管理任务方面,我几乎是一个完整的新手。
非常感谢您的帮助!
好吧,看来我在 django.wsgi 中拼写“应用程序”时出错了。我在 /etc/log/apache2/error.log 中发现了以下错误(对于 ubuntu)(我之前没有弄清楚如何读取错误日志):
改变之后,一切都很好。然后我测试了权限的事情,看来只要我把 apache/django.wsgi 保留在 apache 可以看到的地方,就可以了(我现在将其更改为 777)。
运行 Apache 的用户是否有权从您的个人帐户中读取目录/文件?阅读:
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User
换句话说,权限问题。