聲明:配置環境是fedora 20,這里是官方文檔,找文檔是解決問題最有效的方式。
介紹
OpenShift是紅帽公司推出的一個云計算服務平臺,開發人員可以用它來構建和發布web應用。Openshift廣泛支持多種編程語言和框架,如Java,Ruby和PHP等。另外它還提供了多種集成開發工具如Eclipse integration,JBoss Developer Studio和 Jenkins等。OpenShift 基于一個開源生態系統為移動應用,數據庫服務等,提供支持。
——來自百度百科
簡言之,就是一個面向開源開發人員開放的平臺即服務(PaaS)。
使用openshift首先需要一個賬戶,注冊十分簡單,不在此贅述。
配置自己的openshift可以通過幾種方式,比如web端,命令行。web端適合剛剛接觸的新手,建議新用戶多點點鏈接,熟悉一下大體的使用方法和功能。當準備好創建應用時即往下看。本文是介紹命令行下的配置,畢竟修改代碼什么的都需要在本地修改后再提交。而openshift的客戶端就是基于命令行的。
安裝
安裝命令行客戶端
sudo yum install rubygem-rhc -y
初始化設置
sudo rhc setup
此時需要輸入帳號和密碼,即為自己在openshift注冊時的帳號。
令人費解的是使用我的本地賬戶運行rhc
顯示找不到命令,切換為root運行也是如此。只能使用sudo rhc
的方式,后面運行git push
也是如此,必須是sudo git push
。如果你知道原因,煩請不吝賜教。
使用gem更新rhc
sudo gem update rhc
然后看看自己的賬戶
sudo rhc account
在安裝rhc的時候本地用戶已和云端綁定,ssh公鑰也導入了,因此之后的操作一般不需要再作驗證。
查看自己的app
sudo rhc apps
可以看到自己賬戶下有多少個app(免費賬戶最多3個),應用名,git倉庫地址,主機地址,綁定的域名,以及模塊,數據庫版本,數據庫用戶和密碼等等。比如我的wordpress(數據庫賬戶和密碼被我屏蔽)。
blog @ http://blog-grunmin.rhcloud.com/ (uuid: 5325520fe0b8cd3a830009ff)
------------------------------------------------------------------------
Domain: grunmin
Created: 3:26 PM
Gears: 1 (defaults to small)
Git URL: ssh://5325520fe0b8cd3a830009ff@blog-grunmin.rhcloud.com/~/git/blog.git/
Initial Git URL: https://github.com/openshift/wordpress-example.git
SSH: 5325520fe0b8cd3a830009ff@blog-grunmin.rhcloud.com
Deployment: auto (on git push)
Aliases: wp.guorunmin.cn
mysql-5.1 (MySQL 5.1)
---------------------
Gears: Located with php-5.3
Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/
Database Name: blog
Password: ********
Username: ******
php-5.3 (PHP 5.3)
-----------------
Gears: Located with mysql-5.1
創建應用
創建
看別人的東西干過癮,不如自己創建一個,創建的方法也很簡單,只需一個命令
sudo rhc app create AppName
Openshift 支持Java,Ruby,Node.js,PHP,Perl和Python,在AppName 后面可以加其他參數,例如php應用是:
sudo rhc app create AppName php-5.4
有一種是diy模式,即自行搭建語言環境的,面對一臺陌生的機器,我沒有任何信心能完成這樣的工作_。剛開始的時候,我找不到CI框架的環境(有ZF),所以選擇新建空應用,以為我自己的代碼可以在服務器上運行,想想還是比較天真哈哈哈
如果是安裝環境了,改代碼的之前需要將倉庫克隆到本地。如果新建空應用,那么rhc會自動將倉庫克隆下來。
更多參數可以參見官方文檔,不用擔心看不懂英文,我翻了一遍,文檔大體都能看懂。
添加mysql和phpmyadmin模塊
既然是php應用,mysql和phpmyadmin怎么能少呢!讓我們添加一下
sudo rhc cartridge add mysql-5.1 -a AppName
sudo rhc cartridge add phpmyadmin -a AppName
此時新建的應用信息大概就是你看到的上面那個。建議保存一下有用的信息,比如phpmyadmin的地址,用戶名和密碼,尤其是使用web端創建的同學*_*
安裝wordpress后還需登陸網站添加安裝配置信息
如果要刪除應用,執行
sudo rhc app delete AppName
開始碼字
如果安裝的是wordpress這些成熟的應用,因為它提供了管理界面,大概不用去修改代碼。如果是自己開發的應用呢?Openshift支持git的方式修改云端上的代碼。大體流程應該是這樣:
克隆代碼到本地->進入應用目錄->進入代碼目錄->修改代碼->git add,commit,push->服務器上的應用關閉->一系列編譯布置->應用重啟->完成
克隆操作
sudo rhc git-clone AppName
或者知道倉庫地址,像這樣
sudo git clone ssh://53257e56e0b8cd671500019b@app-grunmin.rhcloud.com/~/git/app.git/
php應用根目錄下默認有兩個文件夾,.git和.openshift。(安裝wordpress時候還有另外三個目錄:libs,misc,php,但是我找不到wordpress的代碼).openshift目錄的作用官網的說明挺詳細,我只知道是存放git動作觸發的腳本文件,沒有深入研究。根目錄下還有index.php文件,就是登陸AppName-AccountName.rhcloud.com時看到的頁面。這樣的設計應該很明朗了,我們直接將代碼放在應用根目錄下即可。或許你可以寫個測試文件看看php的環境,比如"welcome.php"
<?php
phpinfo();
?>
另外我們可以ssh進去主機看看里面的文件。如果想了解的話還是自己找找資料吧,比如openshift用ssh登陸后的目錄結構。
訪問
雖說是否被墻是判斷一個服務好壞的標準,不過眼看著這么好的服務被墻還是挺讓人窩火。因此我也希望我們能夠好好利用openshift,不要見縫插針,浪費資源。
如果是博客,那么有一個自己的域名當然比較好。如果不是的話,為了避免被墻,建議也綁定一個,雖然不一定能起作用。綁定域名,也是一個命令搞定:
sudo rhc alias add AppName YourDomain
當然,你需要在域名提供商那里添加一個CNAME記錄,指向你的openshift域名。
因為緩存的原因,域名解析不會立刻生效。
或者使用https的方式訪問。
其他跨欄的姿勢很多,不贅述。