我使用Django 1.0编写了一个应用程序。它与django测试服务器一起工作正常。但是当我试图让它进入更有可能的生产环境时,Apache服务器无法运行应用程序。 我使用的服务器是WAMP2.0。我多年来一直是PHP程序员,很久以前我一直在使用WAMPServer。 我安装了mod_wsgi.so并且似乎工作得很好(没有服务错误)但是我无法配置httpd.conf来查看位于服务器根目录之外的python脚本。
现在,我很酷,覆盖文档根目录并从文档根目录提供django应用程序,因此httpd.conf行应该如下所示:
WSGIScriptAlias / C:/Users/Marcos/Documents/mysite/apache/django.wsgi
但是服务器的响应是403 Forbidden
答案 0 :(得分:7)
你有:
WSGIScriptAlias / /C:/Users/Marcos/Documents/mysite/apache/django.wsgi
这是错误的,因为RHS不是有效的Windows路径名。使用:
WSGIScriptAlias / C:/Users/Marcos/Documents/mysite/apache/django.wsgi
即,在Windows驱动器说明符之前没有前导斜杠。
除此之外,请按照其他人指出的mod_wsgi文档进行操作。
海报编辑了一个问题来改变现在看起来在帖子中的拼写错误,而不是他的配置问题。
如果是这种情况,403的下一个原因如下:
首先,您还需要:
<Directory C:/Users/Marcos/Documents/mysite/apache>
Order deny,allow
Allow from all
</Directory>
如果你没有,那么Apache没有被授予从该目录提供脚本的权利,因此将返回FORBIDDEN(403)。
其次是你确实拥有它,但不承认你这样做,并且用户无法读取该目录或WSGI脚本文件,因为Apache服务在Windows下运行。
答案 1 :(得分:6)
你见过http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango吗?
你需要不止一行才能确保Apache能够很好地发挥作用。
Alias /media/ /usr/local/django/mysite/media/
<Directory /usr/local/django/mysite/media>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /usr/local/django/mysite/apache/django.wsgi
<Directory /usr/local/django/mysite/apache>
Order deny,allow
Allow from all
</Directory>
<Directory>
以及相应的文件系统所有权和权限至关重要。
usr/local/django/mysite/apache
目录包含您的Python / Django应用程序和最重要的django.wsgi
文件。您必须提供此目录的权限。
答案 2 :(得分:1)
mod_wsgi的文档非常好。尝试使用他们的快速配置指南,然后从那里开始: http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide