AppFog 部署 B3log 详细教程

本贴最后更新于 4119 天前,其中的信息可能已经东海扬尘

前段时间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

B3log上传AppFog

然后输入注册的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成功。

  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1090 引用 • 3467 回帖 • 297 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    90 引用 • 383 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    大叔介绍得好详细哦 :-)

  • someone

    af 速度不错,不过最大的问题是会定期重启程序,一重启数据就还原了 (哼哼猪)

  • someone

    真的这么恐怖吗,看来那我要经常备份才行了。 (大叔)

  • someone

    效果冒失很好

  • someone

    大叔你加我的 qq 可以不?
    405718286
    这方面还有一些问题想要请教

  • someone

    你博客现在是在 af ?速度还行

  • someone

    嗯 是的 还在 appfog

请输入回帖内容 ...
DASHU
大叔已经成为一个老油条了~~

推荐标签 标签

  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 597 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 5 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 60 关注
  • 自由行
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1738 回帖 • 2 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 545 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 19 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 3 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 125 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1090 引用 • 3467 回帖 • 297 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 402 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    331 引用 • 315 回帖 • 82 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 380 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • danl
    57 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 66 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    139 引用 • 441 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    938 引用 • 1456 回帖 • 163 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 166 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 346 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 591 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 3 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖