1、背景html
最近在学习web.py,跟随官网的cookbook和code examples一路敲敲打打,在本地访问了无数遍http://0.0.0.0:8080/,也算是对web.py有了基本的认识。为了增强动手实践,我决定本身写一个简单的web.py应用;为了让这个web.py应用可以真正运行在互联网上,我决定将其托管到一个AppEngine(应用引擎)中去。python
目前可供选择的AppEngine有不少,国内的有:百度的BAE、新浪的SAE、阿里的ACE,国外的有:Google的GAE、Redhat的OpenShift,等等。这些AppEngine我都没有用过,天然无权评价它们孰优孰劣,网上关于这些AppEngine的比较有很多。目前为止,这些AppEngine都要收费,虽然SAE申请开发者认证后能够勉强使用,可是申请步骤我的以为很繁琐。git
我选择OpenShift的理由很直接:它在提供收费业务的同时,也支持无偿使用(尽管免费服务有一些限制:只能建立三个 app,提供 1.5G 内存和 3G 存储空间,但彻底知足我当前的需求),而且操做简单。github
2、注册账号web
进入OpenShift注册页面,填写邮箱和密码完成注册,收到邮件后点击连接激活账号便可。数据库
3、建立应用express
OpenShift提供了“Web控制台”和“命令行”两种方式来建立应用。编程
一、Web控制台(web console)ruby
进入管理后台,按照界面提示操做便可,主要有如下几步:app
具体操做在Redhat OpenShift 云计算平台试用小记中有很好的讲解,推荐参考。
二、命令行(command line)
1)安装RHC工具
$ sudo apt-get install ruby rubygems $ sudo gem install rhc
注意:若是“sudo gem install rhc”命令长时间无响应(多是自动下载gem包有问题),能够到gems包中心搜索并下载rhc包后,采起本地安装
$ sudo gem install rhc-1.10.7.gem -l
若是安装过程当中有依赖,能够根据错误提示到gems包中心逐一搜索并下载,本地安装依赖包(安装命令同rhc,若是又有依赖,递归处理)完毕后,再安装rhc。
2)初始配置
$ rhc setup
3)建立web.py应用
Python Application Hosting中给出了OpenShift支持的Python应用。若是想建立web.py应用,选择Web2Py,其中的openshiftwebpy应用很好地展现了“OpenShift中web.py应用的基本框架”。这里以openshiftwebpy应用为例给出建立web.py应用的命令:
$ rhc app create -a openshiftwebpy -t python-2.6
4、提交应用
在OpenShift中提交应用的通常方法能够参考Deploying and Building Applications,具体到openshiftwebpy应用能够参考README.md。
一、安装Git
$ sudo apt-get install git
二、提交代码
1)git下载
git下载,也就是将git仓库中的应用下载到本地,具体到openshiftwebpy应用,命令以下:
$ git clone ssh://51e76ffce0b8cd263d000024@openshiftwebpy-russellluo.rhcloud.com/~/git/openshiftwebpy.git/ openshiftwebppy
其中,形如“ssh://.../~git/openshiftwebpy.git/”的字符串为“Git URL”,能够经过“rhc app show openshiftwebpy”命令得到。
若是使用“命令行”建立应用,则会自动进行git下载;只有使用“Web控制台”建立应用时,才须要执行上述命令手动进行git下载。
注意:若是“git clone”命令失败,一般跟SSH有关,解决方法以下:
$ rhc app delete openshiftwebppy # 慎用此命令:它会删除与应用相关的全部内容,注意备份 $ rhc app create openshiftwebppy python-2.6
$ ssh-keygen -f ~/.ssh/id_rsa -t rsa # 从新建立ssh key $ ssh-add ~/.ssh/id_rsa # 更新本地的ssh私钥 $ rhc sshkey remove -i default # 删除OpenShift上名为"default"的key(若是有) $ rhc sshkey add -i default -k ~/.ssh/id_rsa.pub # 添加ssh公钥(名为"default")到OpenShift
2)修改代码
$ cd openshiftwebpy $ git remote add upstream -m master git://github.com/openshift/openshiftwebpy.git $ git pull -s recursive -X theirs upstream master
3)git提交
$ git push
5、访问应用
访问应用主页http://openshiftwebpy-russellluo.rhcloud.com/(若是被GFW了,能够尝试https://openshiftwebpy-russellluo.rhcloud.com/)
关于在OpenShift上托管web.py应用,本文只介绍了最基本的操做,诸如数据库、调试、构建等高级主题能够进一步参考Python Application Hosting或者Developer Center。