上线前的 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