在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】重新载入。
《参考资料》
- Django on Dreamhost(http://wiki.dreamhost.com/index.php/Django)
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命令用得不好。ごめんね。
继续在Dreamhost上配置Django | 清風徐来,驚涛拍岸 said,
February 19, 2009 @ 16:41
[...] 上次在Dreamhost上配置Django,能够看到Django启动的画面后,接着就好几天没玩它了。今天先把Django的admin配起来。 [...]
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找不到这个模块,不知道为什么?