Ubuntu 13.04 Django 项目部署Apache +WSGI.

 比较喜欢django,前段时间忙着学习django的基本使用。没有时间研究怎么通过Apache 来访问Django项目,总是使用自带的light server来测试程序。今天研究了下怎么使用Apache+WSGI的方式,实现稳定访问,因为mod_python已经停止支持,所以就不考虑了。

假设 django项目已经存在并可以正常访问,Apache2已经安装完毕,并且访问通畅。

1. 安装Apache的WSGI 模块, sudo apt-get install libapache2-mod-wsgi  .

     可以使用a2enmod wsgi来验证是不是已经安装成功。

2. 配置Apache端.

    直接修改/etc/Apache2/sites-available/default

    a.可以直接在 默认的virtualhost里加上

 

WSGIScriptAlias / "/home/jester/django/opex/opex.wsgi"

<Directory "/home/jester/django/opex">

Order deny,allow

Allow from all

</Directory>

    b.也可以直接新建virtualhost.并使用不同的端口。

      Listen 8003

      NameVirtualHost *:8003

    <VirtualHost *:8003>

ServerAdmin [email protected]

ServerName 10.5.210.230

DocumentRoot /home/jester/django/opex

ErrorLog ${APACHE_LOG_DIR}/error.log

 

# Possible values include: debug, info, notice, warn, error, crit,

# alert, emerg.

LogLevel warn

 

CustomLog ${APACHE_LOG_DIR}/access.log combined

 

WSGIScriptAlias / "/home/jester/django/opex/opex.wsgi"

<Directory "/home/jester/django/opex">

Order deny,allow

Allow from all

</Directory>

   </VirtualHost>

 

 

3. 在相应项目地下创建.wsgi文件,要和virtualhost的‘WSGIScriptAlias’ 保持完全一致才行。

   /home/jester/django/opex/opex.wsgi

 

#-- coding:utf-8 --

import os,sys

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

os.environ['PYTHON_EGG_CACHE']='/tmp/.python-eggs'

current_dir=os.path.dirname(__file__)

if current_dir not in sys.path:

sys.path.append(current_dir)

 

import django.core.handlers.wsgi

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

 

4. 重启apache2. sudo /etc/init.d/apache2 restart.

 

里面的某些参数改为和自己实际一致即可。。。

 

 

 

你可能感兴趣的:(apache,django,ubuntu,apache2,wsgi)