转载:Hostmonster上部署Django H1B 签证需要提供I-797原件吗?
Sep 11

在Hostmonster上部署django的常见方法,可以参考文章http://www.frankdu.com/blog/archives/334

但是在实际部署中,发现很难按照那样的步骤成功部署。经过摸索,我的部署方法如下:

1. 安装Python 2.5
虽然django可以在python 2.3及以上版本运行,但是最推荐版本是2.5,在hostmonster的主机上提供的是2.3,所以你可以想安装python 2.5到个人目录中。基本安装步骤是,到www.python.org下载合适的安装版本。如果想从源代码安装,需要登陆SSH然后执行以下步骤:
a. 使用wget下载源代码
b. tar zxvf python-VERSION.tar.gz
c. cd python-VERSION
d. ./configure –prefix=$HOME
e. make
f. make install
如果安装缺乏软件,请按照提示安装。

2. 安装Django
最新的正式版本是django 1.0,以此为例安装步骤如下:
a. wget http://www.djangoproject.com/download/1.0/tarball/
b. tar zxvf Django-1.0.tar.gz
c. cd Django-1.0
d. export PATH=$HOME/bin:$PATH
e. python setup.py install

3. 设置路径
编辑“.bash_profile”文件,设置PATH和PYTHONPATH,以便程序能正确运行:
export PATH=$HOME/bin:$HOME/lib/python2.5/site-packages/django/bin:$PATH
export PYTHONPATH=$PYTHONPATH:$HOME/django/django_projects

然后重新加载.bash_profile,使新配置生效:
source ~/.bash_profile

4. 创建mysql数据库和账户等信息
在cPanel中创建用于django项目的mysql数据、数据库用户,并记录下来用于项目设置。

5. 创建项目目录
cd ~
mkdir django_projects
mkdir django_templates
cd django_projects
django-admin.py startproject mysite
chmod 600 mysite/settings.py
最后一句用于设置settings.py的文件权限,阻止其他用户看到我们的数据库、用户、密码等重要信息。修改settings.py的内容,设置数据库、时区、模板目录等信息。

6. 配置FastCGI
这一步非常重要!首先在cPanel的“Apache Handlers”中添加以下信息:
处理器名称:fcgid-script
文件扩展名:.fcgi

然后,在你想添加django支持的网站目录中,安装fcgi.py、django.cfgi,并加入URL改写规则。

wget http://svn.saddi.com/py-lib/trunk/fcgi.py
chmod 755 fcgi.py
下载文件并设置权限,如果文件无法下载,也可以使用链接http://www.frankdu.com/download/fcgi.py

在同一个目录,创建文件django.fcgi,文件内容如下:

#!~/bin/python
import sys, os
sys.path.insert(0,”/home/your-user-name/django/django_projects”)
from fcgi import WSGIServer
os.environ['DJANGO_SETTINGS_MODULE'] = ‘mysite.settings’
from django.core.handlers.wsgi import WSGIHandler
WSGIServer(WSGIHandler()).run()

要注意, 上面的”your-user-name”需要改为你在hostmonster的用户名。“django_projects”是咱们建立的放项目的目录. 第5行的”mysite”是Django生成的项目的名字. 这几个一定要对应!

同样要修改执行权限 :
chmod 755 django.fcgi

7. 配置Rewrite Rule
这个就简单了, 照葫芦画瓢! 和上面的django.fcgi文件在同一个目录下, 建立.htaccess文件(别把点忘了), 内容如下RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ - [L]
RewriteCond %{REQUEST_URI} !(django.fcgi)
RewriteRule ^(.*)$ django.fcgi/$1 [L]

8. 搞定

好了,到这里就搞定了!可以写一些测试脚本,放上来运行一下。我安装的域名是http://www.visafly.com,测试工作情况可以访问http://www.visafly.com/time/

随机日志

5 Responses to “如何在Hostmonster上成功部署Django”

  1. guotie Says:

    我按照这个方法配置后,访问我的网站,却把fcgi脚本的内容显示出来了,是为什么?

  2. guotie Says:

    我已经把fcgi文件改为可执行权限了!

  3. issin Says:

    很感谢你的分享,我按你的指引完成了,但是提示Internal Server Error,还不知道具体的error log在哪里。方便把.htaccess和mysite.fcgi还有time整个django_project发邮件给我参考一下吗?python很正常,估计是django相关的问题。
    另外django-admin.py startapp mysite应该为django-admin.py startproject mysite,还有是文中没有提到Rewrite Rule的media,是django/contrib/admin/media吗?

  4. frank Says:

    to guotie:
    第6步“配置FastCGI”非常重要!请和hostmonster确认你的服务器的Apache Handler的处理器名称和扩展名。我得到的回复是:

    首先在cPanel的“Apache Handlers”中添加以下信息:
    处理器名称:fcgid-script
    文件扩展名:.fcgi

    如果问题还在,能否按照步骤再做一遍,以确认没有遗漏?

  5. frank Says:

    to issin:
    多谢更正!
    .htaccess和mysite.fcgi这就发给你,其他程序都是很普通的代码就算了。
    对于media的重写规则,是指media目录的请求,直接访问文件系统

Leave a Reply