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。