使用Mod_wsgi在Apache上部署Django项目

时间:2012-03-08 18:57:06

标签: python django apache mod-wsgi

我正在Apache上部署Django项目。配置完成后,我在浏览器中打开“localhost”,没有显示任何内容,状态栏只是一直说“等待本地主机”。这是一些信息。

1.环境:

OS: Red Hat Enterprise Linux Server x86
Python: 2.7.2
Django: 1.3.1
Mod_wsgi: 3.3
Apache: 2.2.21
Django project: /var/www/html/server/video1

2.Apache配置文件行添加:

LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / /var/www/html/server/video1/apache/django.wsgi

Alias /media/ /usr/local/apache2/htdocs/media/
Alias /static/ /usr/local/apache2/htdocs/static/

<Directory "/var/www/html/server/video">
Order Deny,Allow
Allow from all
</Directory>
<Directory "/usr/local/apache2/htdocs/media">
Order Deny,Allow
Allow from all
</Directory>
<Directory "/usr/local/apache2/htdocs/static">
Order Deny,Allow
Allow from all
</Directory>

3.Django.wsgi文件:

import os
import os.path
import sys

sys.path.append('/var/www/html/server')
sys.path.append('/var/www/html/server/video')

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

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

添加了4.settings.py行:

MEDIA_ROOT='/usr/local/apache2/htdocs/media/'
MEDIA_URL='/media/'
STATIC_ROOT='/usr/local/apache2/htdocs/static/'
STATIC_URL='/static/'
ADMIN_MEDIA_PREFIX='static/admin'

TEMPLATES_DIR = {
   "/var/www/html/server/video1/templates"
}

INSTALLED_APPS = {
   'django.contrib.admin'
}

5.restart apache

这些是我所做的,有人可以帮助我看看某个地方是不是错了吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

路径'/ var / www / html / server / video'与您在WSGIScriptAlias中的路径不匹配。

除此之外,您是否真的首先尝试部署WSGI hello world程序?

还尝试将LogLevel设置为Apache中的信息而不是警告。然后,Apache错误日志将包含消息,说明是否加载了WSGI脚本文件。现在不明显你的浏览器是否甚至无法联系服务器,或者是否加载了WSGI应用程序,但没有响应。