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

准备工作

要搭建WordPress@Cloud,我们只需要如下三个云产品:

  • BAE专业版应用(WordPress网站代码托管和部署服务)
  • RDS实例(WordPress的MySQL数据存储)
  • BOS Bucket(WordPress的多媒体文件存储)

创建 “BAE专业版应用”

首先,上BAE专业版的控制台创建一个应用,初始配置:(选Web、php5.4、打包上传

创建“RDS实例”

然后,上RDS控制台创建一个实例,初始配置:

创建RDS实例

同时在RDS控制台的“账号管理”页面创建一个访问账号,在“数据库管理【BAE专业版】玩转WordPress系列 – 修正”页面创建一个数据库并授权账号(允许读写操作):

创建RDS账号

创建RDS数据库

创建“BOS Bucket”

再然后,上BOS控制台创建一个Bucket,初始配置:(选北京、公共读

创建BOS Bucket

上面选择的初始配置都是最低配置的套餐,后续可根据网站的使用情况调整套餐的配置,比如可以查看RDS的监控,如果磁盘使用率过高,就可以调高RDS的容量。由于Bucket的读写权限是公共读,所以请不要在这个Bucket放置敏感信息。

关联“BAE专业版应用”和“RDS实例”

最后一步,为了能让部署在BAE专业版上的WordPress能够访问RDS实例,需要上BAE专业版的控制台,进入之前创建的应用的设置页面,创建RDS关联。

BAE应用关联RDS

部署WordPress

接下来我们就可以开始愉快的部署WordPress了。

下载WordPress

首先,我们可以去WordPress官网瞧瞧,下载最新版WordPress 4.4.1(修复了一个XSS漏洞),或者上官网指定的中文网站下载中文版WordPress4.4.1。下载后解压到WordPress本地目录:

WordPress本地目录

然后,下载一个BAE的插件(WordPress个人云存储插件,个人贡献),该插件用于将多媒体文件持久化到BOS。关于WordPress在线生成内容的持久化问题,我们后续再讨论。下载解压后,将该插件复制到WordPress本地目录的wp-content/plugins

WordPress本地目录添加BOS插件

打包上传WordPress

首先,上BAE专业版的控制台,进入应用的代码管理页面,下载初始代码。

下载初始代码

将app.conf和bae_app_conf.lua复制到WordPress本地目录:

WordPress本地目录合并BAE初始代码

然后,把WordPress本地目录打包,建议命名以版本号结尾,比如my-wordpress-1.0.0。

再然后,上BAE专业版的控制台,点击应用的部署操作:

WordPress1.0.0打包上传

等待几秒后,可以点击应用的二级域名,打开应用的主页,查看部署是否成功。如果出现如下页面,则部署成功;否者算失败,这时可以查看应用日志(builder.stderr.log)寻找原因。

WordPress初始化向导

在线配置WordPress

点击应用的二级域名,打开应用主页,WordPress会自动引导配置。第一页的配置是数据库配置,数据库名、用户名、密码和主机需要到RDS的控制台寻找,在创建“RDS实例”时都已经准备好。

WordPress初始化向导-配置数据库

WordPress初始化向导-数据库配置成功

接下来一路按照WordPress的提示进行配置,迫不及待的进入WordPress的管理页面,开始领略WordPress的风采。

持久化WordPress在线内容

为什么要把这一步设置拎出来单独作为一节?那是因为这一步非常非常重要。曾经有朋友在BAE基础版上部署了WordPress,一开始玩的很嗨,结果某一天突然发现WordPress变成未配置状态了,部分在线生成的内容在重新配置数据库后也无法恢复了,那叫一个郁闷啊。问题就在于BAE应用目前还不支持永久存储(卷,文件系统),应用一旦重新部署(可能failover了)就会导致在线生成的内容(MySQL的除外)丢失,因此支持持久化在线内容这一功能绝对是WordPress的强需求,期待BAE后续推出。

当然我们也不要气馁,不凡试试曲线救国。WordPress在线生成的内容,可以分为三大类:

  1. 进入MySQL的数据,比如文本内容、配置数据等。本身已经持久化,不再展开。
  2. 配置代码(wp-config.php)、插件、主题等。数据存放在应用部署的磁盘上。我们可以借助BAE的代码托管进行持久化。
  3. 多媒体文件,如果图片、视频等。数据也存放在应用部署的磁盘上。我们可以借助前面下载的BAE的插件(WordPress个人云存储插件),将文件转存到BOS进行持久化。

第二类数据持久化

此类数据目前只能借助BAE的代码托管进行持久化。比如wp-config.php,这个配置代码文件是在WordPress初始化配置的时候在线生成,我们需要从线上抓下来再次随代码提交一次,才能防止应用重启时丢失。操作如下:

  1. 使用BAE专业版的WebSSH功能查看线上部署的文件。在应用的环境详情页的最下面,点击WebSSH,进入WebSSH操作页面,就可以像操作Linux一样查看线上部署的文件了。
    WordPress线上目录(WebSSH)
  2. 找到wp-config.php文件,我本来想直接把这个文件抓下来的,结果发现WebSSH很多命令用不了。只好cat一下,把所有内容复制出来。注意,内容选中的瞬间,会出现一把剪刀,需要快速点击它才能复制。我是直接把WordPress本地目录中的wp-config-sample.php复制到wp-config.php,然后把线上的wp-config.php的内容复制进去。如果有人发现更快捷的方法,望分享。
    WordPress复制wp-config.php(WebSSH)
  3. 重新打包WordPress的本地目录,命名为my-wordpress-1.0.1.zip,再次上传并部署。部署成功后,打开主页,你会发现wp-config.php持久化成功,再也不会出现WordPress的配置向导了。

线上添加的WordPress插件和主题等代码的持久化也是类似的,我们建议去WordPress官网下载,通过打包上传实现持久化。

第三类数据持久化

此类数据我们借助一个BAE的插件(WordPress个人云存储插件),之前已经放入WordPress,现在终于要起作用了。

  1. 打开WordPress主页,进入管理界面,点击插件,启用“百度云插件”。WordPress启用BOS插件
  2. 点击“百度云插件”的设置按钮,对BOS存储进行设置。Bucket可从BOS控制台的找到,之前已经创建好。HOST在Bucket的属性页可以找到。AK/SK在用户中心的安全认证页寻找。WordPress配置BOS插件
  3. 现在发个带图片的文章试试。你会发现添加的媒体会自动生成BOS的URL,并上传到之前配置的Bucket当中,以供随时使用。WordPress插入多媒体WordPress发布第一篇文章

 

数据持久化畅想

曲线救国的方案虽然解决了持久化的问题,但是使用起来显得很不方便。

比如通过代码托管进行持久化的方式,每次WordPress线上加入了新的插件、主题什么的,都要抓下来作为代码提交。而且为了支持WordPress的在线编辑,我们只能部署一个实例,否则就乱套了,新加的插件在哪个实例都不知道,各个实例间还出现了不一致。

通过插件的方式倒是一次性解决了媒体文件的持久化问题,但是毕竟解决的还不够彻底。

敬请期待BAE后续推出WordPress镜像,数据共享方案。到时候我们什么都不用做,就能满足在线内容持久化的需求,同时支持多实例数据共享。

使用WordPress

现在开始使用WordPress生产你的内容吧。

WordPress资源消耗情况

现在WordPress上几乎什么都没有,看看它消耗了多少资源吧。

BAE专业版实例的资源消耗

BAE实例资源消耗

RDS实例的资源消耗

RDS实例资源消耗

此条目发表在 未分类 分类目录。将固定链接加入收藏夹。

发表评论