4

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

4

3 回答 3

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 下运行的用户是不可读的。

于 2009-07-29T00:04:32.680 回答
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文件。您必须提供对此目录的权限。

于 2009-07-28T17:09:08.663 回答
1

mod_wsgi 的文档非常好。尝试使用他们的快速配置指南并从那里开始: http ://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

于 2009-07-28T17:21:28.373 回答