我需要有关配置mod_wsgi和Django的帮助

时间:2010-12-11 21:50:11

标签: django apache mod-wsgi

Apache& mod_wsgi配置正确(我创建了一个问候语 world .html apache文件和一个hello world mod_wsgi应用程序 没问题)。我现在需要我的Django应用程序来使用我的django.wsgi 文件。是什么让我觉得它不能识别我的wsgi文件就是我 进入我创建的django.wsgi文件并完全删除了所有文件 文件中的代码并重新启动Apache,它仍然给了我 同一页面(来自Django应用程序的文件列表,而不是我的实际 Django应用程序。配置Apache和mod_wsgi非常好 但我不知道如何解决这个问题。以下是一些细节:

这是我目前的django.wsgi文件:

import os 
import sys 

sys.path.append('/srv/www/duckling.org/store/') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'store.settings' 

import django.core.handlers.wsgi 

application = django.core.handlers.wsgi.WSGIHandler() 

我尝试了几个不同版本的django.wsgi文件 (包括http://www.djangoproject.com/之类的版本)。 这个版本的wsgi来自这里: http://library.linode.com/frameworks/django-apache-mod-wsgi/ubuntu-10 ......

另外,这是我下面的vhost apache配置文件。我想这些 是为我做这项工作的主要文件。如果.......请告知我们 你看到我正在做的任何错误以及我可能做些什么来修复 这个。 django应用程序在django的内置开发中运行良好 服务器,所以我认为可能我的路径。 我的apache error.log文件中也没有错误。它就像那里一样 没问题,情况并非如此......项目没有加载, 就像我说的只是我的Django文件和目录列表 项目。这是我的apache配置文件:

<VirtualHost 1.2.3.4:80>
ServerAdmin hi@duckling.org
ServerName duckling.org
ServerAlias www.duckling.org

DocumentRoot /srv/www/duckling.org/store/

<Directory /srv/www/duckling.org/store/>
Order Allow,Deny
Allow from all
</Directory>

Alias /static/ /srv/www/duckling.org/store/static/

<Directory /srv/www/duckling.org/store/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias store/ /srv/www/duckling.org/store/wsgi-scripts/django.wsgi
<Directory /srv/www/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

以下是我正在使用的堆栈版本,我看到了 mod_wsgi网站,你们都想要我正在使用的版本 在服务器上:

Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.5 with Suhosin-Patch 
mod_python/3.3.1 Python/2.6.5 mod_wsgi/2.8 

感谢, 学家

1 个答案:

答案 0 :(得分:0)

首先,你绝对不应该将你的Django文件保存在DocumentRoot下。没有必要让他们在那里,这是一个潜在的安全风险 - 正如您所见,您当前的错误配置允许Apache直接提供您的文件:攻击者可以猜测并下载您的settings.py,完成您的数据库密码。

因此,完全摆脱该DocumentRoot指令,以及允许直接访问/srv/www/duckling.org/store/的第一个Directory部分。 (你可能也不需要提供/srv/www/wsgi-scripts的那个。)这应该会让事情变得更好。

顺便说一句,此配置将在duckling.org/store下为您的网站提供服务 - 这是您想要的吗?如果你想在根目录下,你应该使用:

WSGIScriptAlias / /srv/www/duckling.org/store/wsgi-scripts/django.wsgi