Django和apache用wsgi整合

Apache和mod_wsgi配置

1.在apache主配置文件里添加以下内容

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias / "/home/djpro/mysite/as/django.wsgi"

<Directory "/home/djpro/mysite">

Order Deny,Allow

Allow from all

</Directory>

django.wsgi这个文件是需要新建的,文件名和目录应该和上边配置文件中的位置对应

2. 新建django.wsgi文件

根据第一步里配置文件django.wsgi信息创建该文件,文件内容如下:

# -*- coding: utf-8 -*-
import os
import sys
current_dir = os.path.dirname(__file__)
if current_dir not in sys.path: sys.path.append(current_dir) #将当前目录自动加入到python的搜索路径
sys.path = sys.path + ['/home/djpro/mysite'] #将django项目目录加入python搜索路径
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' #这个settings就是指项目目录下的setting.py文件.
os.environ['PYTHON_EGG_CACHE'] = '/tmp/.python-eggs' #指定解压egg文件的cache目录
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

3. django项目中的setting.py文件

至此配置已经完成了,你可以通过浏览器访问 http://192.168.0.1 ,不出意外,应该能访问到正常页面了

当然你也可以通过虚拟主机的方式来配置

mod_wsgi是一个开源项目,具体配置选项和说明请参考:mod_wsgi参考

【附:注意运行apache的用户和项目所在目录的权限】