by 丑鑫鑫(Chouxinxin)
1 前言
2 准备工作
首先你至少应该有个在淘宝上购买的10多元一年的DreamHost合租空间,当然如果银子充裕弄一个500G+独立IP的空间更好。在DreamHost的控制面板添加一个二级域名,丑鑫鑫使用的是django.v44.cn,保存前一定要勾选中 FastCGI Support。然后就是远程连接工具,我在这里推荐Putty+WinSCP组合,
3 开始安装
3.1 升级python到2.5.2
用Putty登录到DreamHost的Shell控制台执行如下的命令:
$>cd opt
$>mkdir packages
$>wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
$>tar -xzvf Python-2.5.2.tgz
第一步为创建 opt目录,第二步在opt目录下创建 packages目录,第三步到python官方网站下载Python-2.5.2源码发布包,第四步将发布包解压到Python-2.5.2目录下。
$>make
$>make install
以上步骤是编译并安装Python2.5.2
$>vi .bash_profile
编辑.bash_profile文件加入
export PATH=$HOME/opt/bin/:$PATH
将python加入到shell path中
刷新环境变量,确保当前执行环境使用的我们安装的最新python
3.2 安装python-Mysql
$>wget http://internap.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz
$>tar xvzf MySQL-python-1.2.2.tar.gz
$>cd MySQL-python-1.2.2
$>python setup.py install
3.3 安装django-1.0
$>wget http://www.djangoproject.com/download/1.0/tarball/
$>tar -xzvf Django-1.0.tar.gz
$>cd Django-1.0
$>python setup.py install
然后,
在python交互环境下查看django的版本,以测试安装配置的准确性。
>>>import django
>>>django.VERSION
(1, 0, ‘final’)
OK,Succeed!
3.4配置FastCGI
$>cd $HOME/django
$>wget http://svn.saddi.com/py-lib/trunk/fcgi.py
$>chmod 755 fcgi.py
转到先前准备的二级域名指定的目录下,下载fcgi.py,更改其权限为755,创建名为dispatch.fcgi 文件,编辑这个文件为
#!/home/yourusername/opt/bin/python
import sys
sys.path += [‘/home/yourusername/django_projects’]
from fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
import os
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘django1.settings’
WSGIServer(WSGIHandler()).run()
创建.htaccess文件内容如下:
RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ – [L]
RewriteRule ^(admin_media/.*)$ – [L]
RewriteRule ^(dispatch.fcgi/.*)$ – [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]
用来开启apache的mod_rewrite
最后用命令测试:
如果返回的是一个django页面的字符串。
再通过浏览器访问http://django.v44.cn
出现的django提示
恭喜你,配置成功。
4 注意事项
一定要保证dispatch.fcgi是被我们安装的最新的python解析器所执行。否则fastcgi进程将会被DreamHost的扫描进程Kill。还有就是分发文件dispatch.fcgi必须为这个文件名否则也是一样的下场。
FastCGI: incomplete headers
5 参考资料
http://wiki.dreamhost.com/Python_FastCGI
http://jeffcroft.com/blog/2006/may/11/django-dreamhost/
http://blog.localkinegrinds.com/2007/08/20/custom-python-installation-for-django-on-dreamhost/