声明:配置环境是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的方式访问。
其他跨栏的姿势很多,不赘述。