在 Dotcloud 上架设 Django 网站
Install
先安装dotcloud,可以在virtulenv里安装,以下是直接在真实环境中安装的方法:
$ sudo easy_install dotcloud
#也可以用pip
Searching for dotcloud
Reading http://pypi.python.org/simple/dotcloud/
……
Finished processing dependencies for dotcloud
记得在终端输入dotcloud命令测试是否安装成功。dotcloud也是利用ssh来连接服务器的,所以pulickey什么的自然要先设置好,作为github的常客相信大家这一步都是没问题的。
首先要创建一个命名空间(namespace),作为应用的名称,必须是唯一的。首次命令运行后会提示输入apikey,还很贴心的告诉了你要去哪找这个apikey。没看到?那我再友情提示一下:登录dotcloud点击上面的Setting就能找到了,是一串很长的加密字符:
$ dotcloud create perchouli
Warning: /home/perchouli/.dotcloud/dotcloud.conf does not exist.
Enter your api key (You can find it at http://www.dotcloud.com/account/settings): r9z7GDowBt7YlQo91rPE:08553355179041b0408a5563c74dad2ed159b21f
Created “perchouli
这算是建立好一个namespace了,但还没告诉dotcloud这个网站要使用那种语言,所以接下来开始部署(deploy)。
Deploy
部署需要一个服务名(servername),可以是任意小写字母+数字的组合:
$ dotcloud deploy -t python perchouli.www
Created “perchouli.www”.
命令中的”www”就是servername,建议使用较短的字母组合,因为在doctloud会根据填写的servername生成一个url,这里我用的是www,所以这条命令会生成:http://www.perchouli.dotcloud.com/ 这个url。
现在访问url,就可以看到一些基本的部署信息了。也可以在终端中使用dotcloud info命令,它会给出一些具体信息:
$ dotcloud info perchouli.www
cluster: wolverine
config:
path: /
static: static
created_at: 1304574197.515197
name: perchouli.www
namespace: perchouli
ports:
- name: ssh
url: ssh://dotcloud@www.perchouli.dotcloud.com:3857
- name: http
url: http://www.perchouli.dotcloud.com/
state: running
type: python
Setup & Push
之前执行的命令告诉了dotcloud,我们这个项目需要使用python语言,但dotcloud还不知道你用的是哪个框架,所以现在需要告诉dotcloud这是一个django项目。
在本机上创建Django项目可以点击这里。比如django项目文件夹是dmyz,放在dmyz-on-dotcloud目录中,现在要在dmyz-on-dotcloud下(即django项目文件夹的父文件夹)创建一个requirements.txt文件和wsgi.py文件:
$ mkdir dmyz-on-dotcloud
$ cd dmyz-on-dotcloud
dmyz-on-dotcloud$ echo django > requirements.txt
#wsgi.py
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'dmyz.settings' #项目名
import django.core.handlers.wsgi
djangoapplication = django.core.handlers.wsgi.WSGIHandler()
def application(environ, start_response):
if 'SCRIPT_NAME' in environ:
del environ['SCRIPT_NAME']
return djangoapplication(environ, start_response
一个Django项目就配置结束了,现在只要上传即可。dotcloud的上传命令和git差不多(而且都是ssh方式上传):
dmyz-on-dotcloud$ dotcloud push perchouli.www .
# upload . ssh://dotcloud@uploader.dotcloud.com:1060/perchouli.www
# git
……
从弹出的提示可以看到,dotcloud是会下载django程序到服务器上,然后自动安装脚本。现在打开 http://www.perchouli.dotcloud.com/ ,就可以看到Django安装成功的提示了。
Afterword
利用dotcloud ssh可以连接上服务器,但不能切换成root(不知道密码……)。我顺便测试了一下Web2Py框架,和一个PHP页面,运行正常,但暂时还没有测试过CouchDB数据库和其他我不熟悉的语言(比如Perl)。总之Dotcloud实在是太方便了,终于不用再纠结于Coding – FTP 这个麻烦的过程了,希望正式发布的时候能提供更多的支持,还有,别被墙掉才好(乌鸦嘴)= =||
# 作者微博:http://weibo.com/perchouli
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。