月归档:2016 年一月

【BAE专业版】玩转WordPress系列之快速搭建

准备工作 要搭建WordPress@Cloud,我们只需要如下三个云产品: BAE专业版应用(WordPress网站代码托管和部署服务) RDS实例(WordPress的MySQL数据存储) BOS Bucket(WordPress的多媒体文件存储) 创建 “BAE专业版应用” 首先,上BAE专业版的控制台创建一个应用,初始配置:(选Web、php5.4、打包上传) 创建“RDS实例” 然后,上RDS控制台创建一个实例,初始配置: 同时在RDS控制台的“账号管理”页面创建一个访问账号,在“数据库管理【BAE专业版】玩转WordPress系列 – 修正”页面创建一个数据库并授权账号(允许读写操作): 创建“BOS Bucket” 再然后,上BOS控制台创建一个Bucket,初始配置:(选北京、公共读) 上面选择的初始配置都是最低配置的套餐,后续可根据网站的使用情况调整套餐的配置,比如可以查看RDS的监控,如果磁盘使用率过高,就可以调高RDS的容量。由于Bucket的读写权限是公共读,所以请不要在这个Bucket放置敏感信息。 关联“BAE专业版应用”和“RDS实例” 最后一步,为了能让部署在BAE专业版上的WordPress能够访问RDS实例,需要上BAE专业版的控制台,进入之前创建的应用的设置页面,创建RDS关联。 部署WordPress 接下来我们就可以开始愉快的部署WordPress了。 下载WordPress 首先,我们可以去WordPress官网瞧瞧,下载最新版WordPress 4.4.1(修复了一个XSS漏洞),或者上官网指定的中文网站下载中文版WordPress4.4.1。下载后解压到WordPress本地目录: 然后,下载一个BAE的插件(WordPress个人云存储插件,个人贡献),该插件用于将多媒体文件持久化到BOS。关于WordPress在线生成内容的持久化问题,我们后续再讨论。下载解压后,将该插件复制到WordPress本地目录的wp-content/plugins中: 打包上传WordPress 首先,上BAE专业版的控制台,进入应用的代码管理页面,下载初始代码。 将app.conf和bae_app_conf.lua复制到WordPress本地目录: 然后,把WordPress本地目录打包,建议命名以版本号结尾,比如my-wordpress-1.0.0。 再然后,上BAE专业版的控制台,点击应用的部署操作: 等待几秒后,可以点击应用的二级域名,打开应用的主页,查看部署是否成功。如果出现如下页面,则部署成功;否者算失败,这时可以查看应用日志(builder.stderr.log)寻找原因。 在线配置WordPress 点击应用的二级域名,打开应用主页,WordPress会自动引导配置。第一页的配置是数据库配置,数据库名、用户名、密码和主机需要到RDS的控制台寻找,在创建“RDS实例”时都已经准备好。 接下来一路按照WordPress的提示进行配置,迫不及待的进入WordPress的管理页面,开始领略WordPress的风采。 持久化WordPress在线内容 为什么要把这一步设置拎出来单独作为一节?那是因为这一步非常非常重要。曾经有朋友在BAE基础版上部署了WordPress,一开始玩的很嗨,结果某一天突然发现WordPress变成未配置状态了,部分在线生成的内容在重新配置数据库后也无法恢复了,那叫一个郁闷啊。问题就在于BAE应用目前还不支持永久存储(卷,文件系统),应用一旦重新部署(可能failover了)就会导致在线生成的内容(MySQL的除外)丢失,因此支持持久化在线内容这一功能绝对是WordPress的强需求,期待BAE后续推出。 当然我们也不要气馁,不凡试试曲线救国。WordPress在线生成的内容,可以分为三大类: 进入MySQL的数据,比如文本内容、配置数据等。本身已经持久化,不再展开。 配置代码(wp-config.php)、插件、主题等。数据存放在应用部署的磁盘上。我们可以借助BAE的代码托管进行持久化。 … 继续阅读

发表在 未分类 | 留下评论

gradle+svn轻松搞定java代码上传

背景 在BAE基础版和专业版上,java应用通过war包文件部署的时候,总会遇到一些小麻烦: BAE专业版的svn/git有单文件40M的限制,所以在专业版的svn/git中上传超过40M的war包(很多war包都会超过40M)是不可行的 BAE基础版的svn/git,以及BAE专业版的打包上传,虽然没有单文件大小限制(BAE基础版的svn/git有所有文件加起来不能超过100M的限制),但是每次有任何改动,都需要上传整个war包,导致每次上传耗时很长 解决的办法很简单:将war包中的文件,解压到BAE专业版或基础版的svn/git中的ROOT目录下(tomcat为ROOT目录,jetty为root目录),再上传。 这样,既能避免了BAE专业版svn/git单文件40M的限制(war包中解压出来的文件一般不超过40M),也能避免每次都要上传整个war包的问题(只需要上传war包中有变化的文件,像依赖的jar包文件一般都是不会发生变化的)。 本文主要介绍,如何通过构建工具gradle,实现打war包、解压war包、上传svn的自动化流程。 注:本文并不包含gradle的使用教程,如果你并不熟悉gradle,建议阅读以下gradle入门系列文章: Gradle入门系列(1):简介 Gradle入门系列(2):第一个Java项目 Gradle入门系列(3):依赖管理 Gradle入门系列(4):创建二进制发布版本 Gradle入门系列(5):创建多项目构建 Gradle入门(6):创建Web应用项目 方案 要实现打war包、解压war包、上传svn的自动化流程,只需要在gradle的构建脚本build.gradle中增加一段脚本,并执行gradle publish命令即可。 首先,在build.gradle中增加以下内容: // 使用war插件打war包 apply plugin: ‘war’ // svnUrl为BAE基础版或专业版的svn地址,可在控制台复制获得 def svnUrl = ‘https://svn.bce.baidu.com/…/’ task updateSvn << { if (file(‘svn’).exists()) { exec { workingDir ‘svn’ … 继续阅读

发表在 BAE使用 | 留下评论