同样发布于:http://www.longgaming.com/archives/110 推荐前往阅读
最近将博客搬迁到了Openshift上,将整个流程记录一遍。
注册安装
首先你需要注册一个Openshift的免费账号,这个就不用我多说了吧。一个免费账号能开3个Gear,并且共享3GB免费空间,还是相当诱人的。
接着我们需要安装redhat提供的命令行客户端rhc,rhc需要通过ruby进行安装,因为mac osx中都预装了ruby,所以直接在终端输入sudo gem install rhc即可。Windows的用户需要先下载安装ruby和git,具体可以参考https://developers.openshift.com/en/getting-started-client-tools.html#windows。
安装完成后,在终端输入rhc setup,进行登录和密钥的生成。
提示如下:
Enter the server name 直接回车
Username 输入你注册的用户名
Password输入你注册的密码
Generate a token now? yes回车(这一步就是问你需不需要生成RSA密钥对,不想自己麻烦的请输入yes让它自动生成,生成的密钥对存放在~/.ssh中。不明白RSA原理的可以自己去看看)
Upload? yes回车,将密钥上传到openshift中。
Windows在安装好ruby和git后,也是在终端进行同样的操作。如果不希望自动生成密钥对,也可以选择使用PuTTY来手动生成,详细请参考。然后在web端将生成的公钥手动上传到openshift。另外windows的密钥对存放在c:/user/[user name]/.ssh下。
创建Application
搞定密钥之后我们就可以开始创建Application。
你可以选择在web端或是使用redhat的命令行客户端rhc来创建一个新Application。
Web端:
选择Add Application,然后会进入Application的选择界面。选WordPress,会进入如下界面:
接着设置好该应用的域名,这个域名是redhat免费提供给我们的二级域名,-后面那部分是你之前注册时设定好的域,之前那部分可以根据喜好自己修改。Source Code里是选择git的clone地址,默认是官方提供的quick start代码,另外也有个人爱好者修改过的,请根据需要选择。Cartridges选择PHP和MySQL的版本,可以根据喜好选择。这里我选择的是PHP5.4与MySQL5.5。如果你预计你的应用流量会很大,那么可以选择Scaling,会根据你流量的大小自动调整Gear数,但是需要注意的是,目前选了Scaling后将无法安装phpMyAdmin Cartridge,具体原因未知,请各位自己权衡。这里我们还是选择No scaling,也就是使用一个small gear。我们可以接着创建一个phpMyAdmin Cartridge,phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。在MySQL那一栏里你可以找到登陆phpMyAdmin需要的服务器名,用户名以及密码,最好另外记下来。
另外,如果你需要数据库的IP,登陆进phpMyAdmin后就能看到。
rhc:
当然你也可以完全通过rhc来创建一个和上面一样的应用。打开终端,输入
rhc app create blog PHP-5.4 MySQL-5.5
(用法$ rhc app create <app_name> <web_language> <other cartridges>)
运行完成之后,终端会告知二级域名和ssh链接。另外也能在openshift上看到和上述Web端操作一样的界面。
WordPress安装
点击一下Application页面里的那个二级域名链接,会自动进入WordPress安装页面,根据提示设置好语言,用户名和密码。之后就开始安装,很快就会结束了。这时你就能看到你的WordPress博客的框架已经搭好了。
域名绑定
因为伟大的GFW,Redhat给你的那个二级域名在国内是没法访问的,所以你应该会希望绑定一个顶级域名。首先你得先去买个域名,嗯。这个可以根据大家的喜好来了,我买的是GMO旗下网站http://www.onamae.com/提供的域名,好吧,不得不承认AKB48的广告轰炸还是有些效果的。接着进入你的域名的DNS管理页面,添加CNAME记录或A记录,不太准备的说,CNAME记录是域名记录,而A记录则是IP地址的记录。需要注意的是DNS解析设置并不是马上生效的,而是需要花上几个小时到几十个小时的,请提前设置。
设置方法如下:
如果是CNAME记录,输入你的二级域名就可以了。因为我这里没有提供根域名的CNAME记录解析,所以根域名用了A记录。Ping一下你的那个二级域名就能看到IP地址,填进去。
接下来可以去为你的应用添加别名,也就是你购买的域名,这样才能够直接使用你购买的顶级域名。之前只能通过rhc来操作,而现在可以直接在web端进行操作,非常方便。点击二级域名旁边的Alias,进入如下界面
将根域名(longgaming.com这样的)和自己希望的域名(www.longgaming.com 和blog.longgaming.com这样的)统统加进去就行了。
最后,确认域名解析生效之后,去wordpress的dashboard,进入设置-常规页面,将wordpress地址和站点地址都设为你自己的域名(默认你的wordpress安装在根目录下)。
这样无论进入什么页面都使用的都是你购买的域名,否则你随便进入另外一个页面还是会转到之前的二级域名去。
操作和备份
现在大功基本已经告成,接下来的问题是如何管理我们的应用,基本上有两种方式
Git
这是官方使用和推荐的方式。如果你是用rhc创建的应用,它会自动帮你将应用clone回了本地(能在用户目录~/下找到)。
如果是web端创建的应用,则需要在openshift管理页面上找到clone的地址,
然后手动git clone回本地。
但是这个并不是完整的应用,而是给你用来开发部署的。你自己开发的希望部署的文件可以放在php文件夹中,然后git push,上传到服务器端(应用会自动重启)。如果希望热部署,则可以安装Jenkins。
就我个人来说,感觉其实并不是太方便。你在web端的改动(比如下载和自定义主题等)并不被git所track,你需要在终端输入rhc snapshot save -a {appName},将整个应用的snapshot下下来(这也是备份应用的方式),然后解压并将它们一并track起来。
SFTP
如果你不准备进行大量的开发,而只是准备和我一样好好的写文章,那么用传统的SFTP进行管理也是完全没问题的。首先你需要有个支持ssh协议连接的ftp软件,这里我用的是FileZilla(在mac下和windows下的操作几乎没有区别)。以mac为例,首先进入FileZilla的设置页面,选择连接-SFTP,然后添加密钥文件
找到你的密钥(带后缀的是公钥,不带后缀的是私钥,这里需要的是私钥,请妥善保管,万一私钥泄露了危害你懂的。FileZilla需要的是.ppk格式的私钥,它会帮你将密钥另存为它需要的格式)。另外,如果你希望能在mac和windows上都能管理你的应用,一个比较简单的办法就是将你在某一个系统上(比如我是在mac上创建的应用)生成的私钥(图中的id_rsa)拷到另一个系统上,按照上述步骤重做一遍即可,省的在另一个系统上再生成一遍密钥对和上传新的公钥。
接下来打开站点管理器,
新建一个站点,然后按照上图进行设置,主机填你的二级域名,协议选SFTP,登陆类型交互式,用户名就是ssh链接中数字的那一部分。
然后连接,设置没错的话你就能看到服务器端的文件了,
需要备份的话,你也可以通过ftp将整个应用下下来,和上面使用rhc下载snapshot是一样的效果。实际上,你的应用就在app-root文件夹里。你在web端更改的主题等都反映在data文件夹中,这个文件夹是不被git所track的。
你用git clone回来的则是app-root/runtime/repo,你用git push部署的文件会反映到app-deployment/current/repo,也会反映到app-root/runtime/repo。
另外,还可以使用rhc通过ssh协议连接到你的应用,能够进行一些简单的操作。具体操作可以参考rhc的说明文件。
如果你顺利的做到这一步,那么恭喜你,你的博客已经搭建好了。之后的文章我会介绍如何安装和使用插件,还有自定义出我目前正在使用的主题。