上线前的 server 迁移(Django + wsgi)

2011-07-09

好久不用CentOS系统,被她折腾了两天了。 一般情况,我推荐服务器 使用debian 系统。 由于一些客观原因。只能硬着头皮上了。 我自认为自己是一个比较喜欢折腾的人。不过也经不起三四个月的 连续折腾。 在 CentOS上遇到 几个 问题: 1, python版本是 python2.4 我升级到 python2.6 结果发现 yum不能用了。悲剧。。。 2, Apache的 Mod_Python 不支持 python2.6 呵呵。杯具! 我是改源码好那,还是换成wsgi。最后决定换成 wsgi 折腾好要记录下来,免得以后再重头折腾。呵呵 下面记录下 Djangp+Wsgi 的配置方法: 在 Django 项目下建立 文件夹

mkdir /path/to/myproject/wsgi/
touch /path/to/myproject/wsgi/{apache_django_wsgi.conf,django.wsgi}

apache_django_wsgi.cong 内容如下:

   ServerName myproject.com
   DocumentRoot "/path/to/myproject/"

   Alias /static /path/to/myproject/static/
   
	SetHandler None
   
   
        Order deny,allow
        Allow from all
    


   WSGIScriptAlias / /path/to/myproject/wsgi/django.wsgi
   
	Order deny,allow
        Allow from all
    
   ErrorLog "logs/error.log"
   CustomLog "logs/access_log" combined

django.wsgi 内容如下:

import os
import sys


#Calculate the path based on the location of the WSGI script.
apache_configuration= os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)

#一开始没加下面两条。 结果 500错误。这样写死不太好。以后在优化了。呵呵 
sys.path.append("/path/to/")            
sys.path.append("/path/to/myproject")

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

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

print >> sys.stderr, sys.path