前段时间B3log又升级了,与此同时B3log论坛正式上线。
新版的B3log中,最让人惊喜的就是B3log与社区论坛的同步功能。
可是,就在前些天,google调整了配额,所以有很多升级到最新版B3log的用户超配额。
幸亏现在又有了一个免费的服务让我们放博客。
今天来看看怎么把B3log部署到Appfog。
1、首先就是到Appfog注册。其实注册很简单,这里就不说了。
2、安装AF程序。AppFog提供了一个AF程序来部署我们的程序。
安装AF之前,首先要安装 Ruby Installer for Windows 。安装完成之后,在开始菜单,找到Start Command Prompt with Ruby。这就跟一个cmd控制台差不多。然后依次运行
gem update --system
gem install af
这两句命令,顺利运行之后,AF程序就安装完。
3、登陆AF。
安装完AF之后,输入
af login
然后输入注册的Email和密码,过一会就会看到Successfully logged into [https://api.appfog.com],这样子就是登陆成功。
4、部署测试程序。
我们的B3log程序放在AppFog上,用的是Mysql版,但是AppFog有个缺点,就是在控制台看不到数据库的密码和用户名,所以我们要部署一个测试程序来获取这些信息。下载程序。解压,cd到解压目录,运行
af push blog4dashutest
然后就按照下面步骤操作:
Would you like to deploy from the current directory? [Yn]:你是否要部署该目录,输入y,是。
Detected a Java Web Application, is this correct? [Yn]:是不是java程序,y。
Select Infrastructure:选择服务器,我这里选择3,新加波服务器。
Application Deployed URL [blog4dashutest.ap01.aws.af.cm]:你应用的名字,按enter就是默认名字,就是你的应用名字加服务器地址。在这里也可以输入你想要的url。
Memory reservation (128M, 256M, 512M, 1G, 2G) [512M]: 程序所需的内存:我这里写了1G,java程序默认是512M,但是实践证明,512MB经常导致程序启动不了,所以就选1G吧。
How many instances? [1]:有多少个实例,按enter,选1个就好了。
Bind existing services to 'blog4dashutest'? [yN]:因为我之前已经创建过mysql服务,所以有这个,我输入n,不绑定。
Create services to bind to 'blog4dashutest'? [yN]: 输入y,创建一个新的服务。
What kind of service?:选择2,mysql服务。
Specify the name of the service [mysql-fd0ae]:服务名字,这只是个名字,并不熟数据库名,所以enter默认就行了。
Create another? [yN]:还要创建其他吗,n。不需要了。
Would you like to save this configuration? [yN]:要保存配置文件吗?建议最好保持,因为可能出现失败的情况,这样子就不用再次过这个过程了。
让保存完配置文件之后,程序就会自动创建:
Creating Application: OK
Creating Service [mysql-fd0ae]: OK
Binding Service [mysql-fd0ae]: OK
Uploading Application:
Checking for available resources: OK
Packing application: OK
Uploading (1K): OK
Push Status: OK
Staging Application 'blog4dashutest': OK
Starting Application 'blog4dashutest': OK
5、获取Mysql数据库信息。
在官方doc里面说到了,我们可以通过程序获取Mysql的信息。
在java中,我们可以通过
java.lang.System.getenv("VCAP_SERVICES")
来获取Mysql信息,其实我们刚才上传的测试程序,就是这句话而已,然后我们就可以得到数据库信息。得到的Mysql信息,就像这样子:
{"mysql-5.1":[
{
"name":"mysql-4f700",
"label":"mysql-5.1",
"plan":"free",
"tags":["mysql","mysql-5.1","relational"],
"credentials":{
"name":"d6d665aa69817406d8901cd145e05e3c6",
"hostname":"mysql-node01.us-east-1.aws.af.cm",
"host":"mysql-node01.us-east-1.aws.af.cm",
"port":3306,
"user":"uB7CoL4Hxv9Ny",
"username":"uB7CoL4Hxv9Ny",
"password":"pzAx0iaOp2yKB"
}
}
]}
其实就是一个json数组来的。上面例子中,credentials里面有数据库名字、服务路径、端口、用户名、密码。这些都是我们配置Mysql版所需要的。
6、部署B3log
上一步我们已经获取到了Mysql的信息,我们现在下载一个Mysql版的B3log,按照wiki来修改Mysql版所需要修改的配置文件。
然后cd到Mysql版B3log程序目录,运行:
af upload blog4dashutest
blog4dashutest,就是你刚才创建的应用名字。
然后AF就会自动更换你的程序。好了,b3log部署到AppFog成功。