2009-07-28 114 views
3

我用Django 1.0编写了一个应用程序。它在django测试服务器上正常工作。但是,当我试图将其转化为更可能的生产环境时,Apache服务器无法运行该应用程序。 我使用的服务器是WAMP2.0。多年以来,我一直是一名PHP程序员,而且我很久以前一直在使用WAMPServer。 我安装了mod_wsgi.so,似乎工作得很好(没有服务错误),但我无法配置httpd.conf来查看位于服务器根目录之外的我的python脚本。用mod_wsgi安装Django

现在,我冷静了压倒一切的文档根目录和服务从文档根Django应用程序代替了httpd.conf线应该是这样的:

 
    WSGIScriptAlias/C:/Users/Marcos/Documents/mysite/apache/django.wsgi 

但服务器的响应是403 Forbidden

+1

您现在是否说您在使用'/ C:/ ...'时出现错字。如果是这样的话,请确认你编辑了你的问题并修复了它,否则它会让我感到困惑,因为我为什么首先指出它是错误的。 – 2009-07-29 00:39:41

回答

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脚本文件,以便在Windows下运行Apache服务。

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文件。您必须提供此目录的权限。

+0

别名/ media// usr/local/django/mysite/media /和第一个目录可以直接绕过wsgi提供静态内容 什么是最后的? – Evgeny 2009-07-29 00:16:11

+0

最后一个目录是你的Python/Django应用程序和`.wsgi`文件。 – 2009-07-29 00:21:44