Python 使用mod_wsgi安装Django

Python 使用mod_wsgi安装Django,python,django,apache,mod-wsgi,Python,Django,Apache,Mod Wsgi,我使用Django 1.0编写了一个应用程序。它可以与django测试服务器配合使用。但是,当我试图将其放入更可能的生产环境时,Apache服务器无法运行该应用程序。 我使用的服务器是。我已经做了多年的PHP程序员,很久以前就开始使用WAMPServer了。 我安装了mod_wsgi.so,看起来工作正常(没有服务错误),但是我无法配置httpd.conf来查看位于服务器根目录之外的python脚本 现在,我对重写文档根目录很在行,而是从文档根目录为django应用程序提供服务,因此httpd.

我使用Django 1.0编写了一个应用程序。它可以与django测试服务器配合使用。但是,当我试图将其放入更可能的生产环境时,Apache服务器无法运行该应用程序。 我使用的服务器是。我已经做了多年的PHP程序员,很久以前就开始使用WAMPServer了。 我安装了mod_wsgi.so,看起来工作正常(没有服务错误),但是我无法配置httpd.conf来查看位于服务器根目录之外的python脚本

现在,我对重写文档根目录很在行,而是从文档根目录为django应用程序提供服务,因此httpd.conf行应该如下所示:

WSGIScriptAlias / C:/Users/Marcos/Documents/mysite/apache/django.wsgi WSGIScriptAlias/C:/Users/Marcos/Documents/mysite/apache/django.wsgi 但是服务器的响应是403禁止的

您看到了吗

您需要不止一行代码来确保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>

Alias/media//usr/local/django/mysite/media/
命令拒绝,允许
通融
WSGIScriptAlias//usr/local/django/mysite/apache/django.wsgi
命令拒绝,允许
通融
,以及适当的文件系统所有权和权限是必不可少的


usr/local/django/mysite/apache目录中有Python/django应用程序和最重要的
django.wsgi
文件。您必须提供此目录的权限。

mod\u wsgi的文档非常好。尝试使用他们的快速配置指南,然后从那里开始: 您有:

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没有被授予从该目录提供脚本的权限,因此将返回禁止(403)


第二,你确实有,但不要承认你有,Apache服务在Windows下运行的用户无法读取该目录或WSGI脚本文件。

Alias/media//usr/local/django/mysite/media/和第一个目录直接绕过WSGI提供静态内容。最后一个目录是Python/django应用程序和
.WSGI
您现在是说您在使用“/C:/…”时有一个打字错误吗。如果是这样的话,请承认您编辑了您的问题并修复了它,否则会让人困惑,为什么我一开始就指出它是错误的。谢谢。。。真是个愚蠢的错误!;)很抱歉之前的打字错误