使用mod_wsgi安装Django

mar*_*lhc 4 python apache django 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

Gra*_*ton 7

你有:

WSGIScriptAlias / /C:/Users/Marcos/Documents/mysite/apache/django.wsgi
Run Code Online (Sandbox Code Playgroud)

这是错误的,因为RHS不是有效的Windows路径名.使用:

WSGIScriptAlias / C:/Users/Marcos/Documents/mysite/apache/django.wsgi
Run Code Online (Sandbox Code Playgroud)

也就是说,在Windows驱动器说明符之前没有前导斜杠.

除此之外,请遵循其他人指出的mod_wsgi文档.


海报编辑了一个问题来改变现在看起来在帖子中的拼写错误,而不是他的配置问题.

如果是这种情况,403的下一个原因如下.

首先,你还需要:

<Directory C:/Users/Marcos/Documents/mysite/apache>
Order deny,allow
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

如果您没有,那么Apache没有被授予从该目录提供脚本的权限,因此将返回FORBIDDEN(403).

其次是你确实拥有它,但不承认你这样做,并且用户无法读取该目录或WSGI脚本文件,因为Apache服务在Windows下运行.


S.L*_*ott 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>
Run Code Online (Sandbox Code Playgroud)

<Directory>,以及适当的文件系统的所有权和权限是必不可少的.

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