在Dreamhost空间安装配置python-2.5+django-1.0环境

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控制台执行如下的命令:

$>mkdir opt
$>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目录下

$>./configure -prefix=$HOME/opt
$>make
$>make install

以上步骤是编译并安装Python2.5.2

$>cd $HOME
$>vi .bash_profile

编辑.bash_profile文件加入

export PATH=$HOME/opt/bin/:$PATH

将python加入到shell path中

$>source .bash_profile

刷新环境变量,确保当前执行环境使用的我们安装的最新python

3.2 安装python-Mysql

$>cd downloads
$>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

$>cd $HOME/packages
$>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

最后用命令测试:

$>./dispatch.fcgi

如果返回的是一个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/

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注