在Dreamhost上配置Django

看了很多指南,Guide之类的东西,也偷懒了很长时间。最近想练练手,用Django写点东西玩玩,所以还是记录一下过程,以备参考。好记性不如烂笔头,IT尤其如此。

《前提条件》

  • 1.在 Dreamhost 的控制面板里,将准备使用 Django 的(子)域名配置成 Enable FastCGI 。因为 Dreamhost 不支持 mod_python ,只能通过 Fast CGI 来调用 Django 。
  • 2.用 SSH 连上 Dreamhost 主机,此时应该在自己的用户根目录下。

《设置过程》
※直接贴代码。请将域名、目录名、文件名换成自己的。

  • 0.设置环境变量
$> export PROJECTSHOME=$HOME/myprojects
$> mkdir $PROJECTSHOME
$> export SOFTWAREHOME=$HOME/mysoftware
$> mkdir $SOFTWAREHOME
$> export DOMAINROOT=$HOME/org.jbobos.onlinelist
$> export PROJECTNAME=djsite_onlinelist
  • 1.安装Django
$> cd $SOFTWAREHOME
$> wget http://media.djangoproject.com/releases/1.0.2/Django-1.0.2-final.tar.gz
$> tar xzvf Django-1.0.2-final.tar.gz
$> cd $HOME
$> echo 'export PATH=$PATH:'$SOFTWAREHOME/Django-1.0.2-final/django/bin >> .bash_profile
$> echo 'export PYTHONPATH=$PYTHONPATH:'$SOFTWAREHOME/Django-1.0.2-final:$PROJECTSHOME >> .bash_profile
$> source .bash_profile
  • 2.建立工程
$> cd $PROJECTSHOME
$> django-admin.py startproject $PROJECTNAME
  • 3.配置FastCGI
$> cd $DOMAINROOT
$> rm -f fcgi.py
$> wget http://svn.saddi.com/py-lib/trunk/fcgi.py
$> rm -f dispatch.fcgi
$> touch dispatch.fcgi
$> echo -e \#\!"/usr/bin/python2.4" >> dispatch.fcgi
$> echo "import sys" >> dispatch.fcgi
$> echo "sys.path += ['$SOFTWAREHOME/Django-1.0.2-final']" >> dispatch.fcgi
$> echo "sys.path += ['$PROJECTSHOME']" >> dispatch.fcgi
$> echo "from fcgi import WSGIServer" >> dispatch.fcgi
$> echo "from django.core.handlers.wsgi import WSGIHandler" >> dispatch.fcgi
$> echo "import os" >> dispatch.fcgi
$> echo "os.environ['DJANGO_SETTINGS_MODULE'] = '$PROJECTNAME.settings'" >> dispatch.fcgi
$> echo "WSGIServer(WSGIHandler()).run()" >> dispatch.fcgi
$> chmod 755 $DOMAINROOT/fcgi.py
$> chmod 755 $DOMAINROOT/dispatch.fcgi
  • 4.配置.htaccess
$> cd $DOMAINROOT
$> rm -f .htaccess
$> touch .htaccess
$> echo "RewriteEngine On" >> .htaccess
$> echo "RewriteBase /" >> .htaccess
$> echo "RewriteRule ^(dispatch\.fcgi/.*)$ - [L]" >> .htaccess
$> echo "RewriteRule ^(.*)$ dispatch.fcgi/"\$1" [L]" >> .htaccess
  • 5.注意事项

经过上面0~4的配置,现在在浏览器中输入onlinelist.jbobos.org,应该可以看到Django启动的画面了。另外,dispatch.fcgi可以直接运行。它会将HTML代码直接输出到标准输出。调试的时候可以使用。如果修改了全局的settings,需要用命令【touch dispatch.fcgi】重新载入。

《参考资料》

3 Comments »

  1. T.T.T said,

    February 19, 2009 @ 10:34

    《4.配置.htaccess》最终生成的.htaccess内容应该如下:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^(dispatch\.fcgi/.*)$ – [L]
    RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]

    如果不是这样的,那就是我的echo命令用得不好。ごめんね。

  2. 继续在Dreamhost上配置Django | 清風徐来,驚涛拍岸 said,

    February 19, 2009 @ 16:41

    […] 上次在Dreamhost上配置Django,能够看到Django启动的画面后,接着就好几天没玩它了。今天先把Django的admin配起来。 […]

  3. vincent said,

    May 22, 2009 @ 00:38

    你好,我在dreamhost上装了python 2.5 + mysqldb 1.2.2我使用shell执行代码:
    python
    import MySQLdb
    MySQLdb.version_info
    结果是(1, 2, 2, ‘final’, 0)
    但是当访问网站的时候却出现No mudels MySQLdb找不到这个模块,不知道为什么?

RSS feed for comments on this post · TrackBack URI

Leave a Comment