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
感谢, 学家
答案 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