##在这里详述 nickcheng/2007-01-23. <<TableOfContents>> = 网络收藏 = == 如何量化用户体验 == http://www.donews.net/lixueming/archive/2005/05/30/405632.aspx == 用户体验的价值 == http://www.flickr.com/photos/juui/254144859/ = 一些尝试 = == 在BlueHost上建立Django站点 == 主要参考了 http://www.bluehostforum.com/showthread.php?t=715 这个帖子<<BR>> === 事前准备 === * 安装SVN(BlueHost 默认是不支持SVN的, 需要自己安装) * 开通SSH(BlueHost里要想启用SSH, 竟然还需要身份证, 我ft...) 因为之前已经在BlueHost的主机上装好了SVN, 并且开通了SSH, 所以省了很多事情:) === 获取Django代码 === 在"~/"下建立"django_src"目录 {{{ mkdir django_src }}} 进入目录 {{{ cd django_src }}} 获取代码 {{{ svn co http://code.djangoproject.com/svn/django/trunk/ ./ }}} === 设置路径 === 编辑".bash_profile"文件, 设置PYTHONPATH 和 PATH路径, 方便使用Django {{{ export PATH=$PATH:$HOME/django_src/django/bin export PYTHONPATH=$PYTHONPATH:$HOME/django_src:$HOME/django_projects }}} 重新加载".bash_profile"文件, 来启用配置的路径 {{{ source ~/.bash_profile }}} === 建立项目目录 === 在"~/"下建立"django_projects"目录 {{{ mkdir django_projects }}} 进入目录 {{{ cd django_projects }}} 建立Django项目"myproject" {{{ django-admin.py startproject myproject }}} 修改"myproject.settings"文件的权限, 限制只有你的用户可以读取, 这样可以避免同一个服务器上其他用户访问你的DB {{{ chmod 600 myproject/settings.py }}} === 配置FastCGI === 这一步我花的时间最长! 关键是原文中的fcgi.py不能下载了, 我找了其他的fcgi.py又不对. 郁闷之下翻看了官方的文档, 官方文档说要用flup, 我又折腾了半天flup, 未果... 最后又Google了一堆fcgi.py, 终于被我找到一个对头的:) <<BR>><<BR>> 现在BlueHost的控制面板里建立一个子域名(SubDomain), 建立成功后他会在你的"~/public_html"目录下建立对应的子域名的目录. 我建立了一个叫"lab"的子域名. 然后进入到这个目录中, 下载fcgi.py {{{ wget http://svn.saddi.com/py-lib/trunk/fcgi.py }}} 下载完毕后, 修改执行权限 {{{ chmod 755 fcgi.py }}} 继续在这个目录下建立Django.fcgi, 文件内容如下 {{{ #!/usr/bin/env python import sys, os sys.path.insert(0,"/home/username/django_src") sys.path.insert(0,"/home/username/django_projects") from fcgi import WSGIServer os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' from django.core.handlers.wsgi import WSGIHandler WSGIServer(WSGIHandler()).run() }}} 要注意, 上面的"username"需要改为你在BlueHost的用户名. "django_src"是最开始建立的放Django源代码的目录, "django_projects"是咱们建立的放项目的目录. 第6行的"myproject"是Django生成的项目的名字. 这几个一定要对应! 同样要修改执行权限, 这里再提醒一下大小写! {{{ chmod 755 Django.fcgi }}} === 配置Rewrite Rule === 这个就简单了, 照葫芦画瓢! 和上面的Django.fcgi文件在同一个目录下, 建立.htaccess文件(别把点忘了), 内容如下 {{{ RewriteEngine On RewriteBase / RewriteRule ^(media/.*)$ - [L] RewriteCond %{REQUEST_URI} !(django.fcgi) RewriteRule ^(.*)$ django.fcgi/$1 [L] }}} === 搞定 === 好了, 就酱紫了! 现在可以访问一下你新建的子域名了! 我建立的子域名是"lab", 所以访问的就是 http://lab.v2nb.com . 看到django的字样了吧? <<BR>><<BR>> 这里只是配置完了Web服务的部分, Django部分还需要自己再配置一下, 或者直接放上你自己的Django网站:) <<BR>><<BR>> 如果有需要, 可以再修改.htaccess, 或者参考我参考的帖子:) === 参考 === http://www.bluehostforum.com/showthread.php?t=715 http://wiki.dreamhost.com/index.php/Django#Setup http://www.djangoproject.com/documentation/fastcgi/ http://blog.donews.com/limodou/archive/2006/03/29/799059.aspx http://svn.saddi.com/py-lib/trunk/fcgi.py === 补充 === 上面的完成以后, 我又继续配置我的DB. 又出现了问题. <<BR>><<BR>> 因为我配置的是mysql的DB, 但是BlueHost默认是没有MySQLdb这个Python Module的(Google了老半天才知道), 所以还需要自己安装! {{{ wget http://easynews.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.1_p2.tar.gz }}} 下载下来以后要解包 {{{ tar -xzvf MySQL-python-1.2.1_p2.tar.gz }}} 然后安装. 但因为服务器默认的Python的目录是不给你写权限的, 所以不能直接安装, 而需要安装到本地. {{{ chmod 755 setup.py ./setup.py build ./setup.py install -r ~/python_modules }}} 这样是安装到"~/python_modules"目录下了, 不过我的方法可能有些不对头, 这个目录里的结构太完整了, 所以, 我又这么处理了一把 {{{ cd ~/python_modules/usr/lib64/python2.3/site-packages mv * ~/python_modules cd ~/python_modules rm -r -f usr }}} 然后在原本的Django.fcgi中又增加了如下代码 {{{ sys.path.insert(0,"/home/vtwonbco/django_src") sys.path.insert(0,"/home/vtwonbco/django_projects") sys.path += ['/home/vtwonbco/python_modules'] }}} 最后一行是新加的. 这次终于不报找不到MySQLdb模块的错误了! 方法虽笨, 但目的达到了:)