使用mod_wsgi安装Django

时间:2009-07-28 16:33:46

标签: python django apache mod-wsgi

我使用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

3 个答案:

答案 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