Archive for February 14, 2009

在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】重新载入。

《参考资料》

Comments (3)