如何用百度开发云快速搭建WordPress建站

摘要:WordPress是一款应用较广的建站程序,随着百度开发云“应用模板”功能的推出,BAE基础版实现了一次华丽的转身。今天我们就来聊聊如何用百度开发云快速搭建WordPress。首先看一下应用模板和普通应用(空应用)的区别:注意:使用模板创建的应用,其执行单元个数被限定为1,不支持分布式扩展。

  WordPress是一款应用较广的建站程序,随着百度开发云“应用模板”功能的推出,BAE基础版实现了一次华丽的转身。今天我们就来聊聊如何用百度开发云快速搭建WordPress。

如何用百度开发云快速搭建WordPress建站

  首先看一下应用模板和普通应用(空应用)的区别:

  

 

  注意:

  使用模板创建的应用,其执行单元个数被限定为1,不支持分布式扩展。

  使用模板创建的应用,其本地文件不会因应用重启而被清空,持久化的目录为/home/bae/app。而空应用因支持多个执行单元,本地文件在应用重启时会被清空,因此应将需要持久化存储的文件写到BOS或者数据库中。

  使用模板创建的应用支持手动备份线上代码,备份目录为/home/bae/app。

  使用模板创建的应用支持多个代码版本的部署、删除和下载操作,部署失败可以手动回滚(重新部署)到之前的版本。空应用目前只能通过SVN/GIT部署最新版本,不支持回滚。

  创建

  进入“产品服务 / 应用引擎BAE-部署列表 / 添加部署”,选择WordPress模板创建新应用。

 

  

 

  配置

  回到“产品服务 / 应用引擎BAE-部署列表”,等待应用创建成功后,点击域名进行WordPress的配置。

  

 

  WordPress需要配置数据库,如果没有可以在BAE基础版的扩展服务中创建一个新的数据库(目前BAE基础版可以创建5个免费MySQL数据库)。

 

  WordPress配置数据库。

 

  其他的WordPress的配置就看着配吧,应该都能轻松搞定,一会功夫就能开始把玩自己的WordPress站点了。

  备份

  通过模板创建的WordPress没有任何限制,也不用担心在线生成的数据丢失。有喜欢的主题,装;有喜欢的插件,装;有了新版本,装;总之就是装装装,随便玩。如果还是不放心,就去手动备份一下。

  回到“产品服务 / 应用引擎BAE-部署列表”,点击应用的“打包上传”,进入“发布设置”页面。

  

在“代码管理”点击“添加备份”,稍后就会生成一个新的代码版本,直接打包了当时线上/home/bae/app目录下的数据,/home/bae/log下的日志文件不会打包。

 

  

 

  插件

  1、WP-Mail-SMTP

  WordPress模板预装了一个邮件发送的插件WP-Mail-SMTP,配置好后可以允许访客注册账号和找回账号。

  首先,进入QQ邮件的设置页面,开启QQ的SMTP服务。

  

 

  然后在WordPress插件管理页面启用WP-Mail-SMTP。

  

 

  然后点击WP-Mail-SMTP的Setting开始配置SMTP。

  

 

  最后,测试配置是否成功。

  2、百度云插件

  目前模板应用的磁盘空间有限,建议使用百度云插件,将多媒体数据(如图片、视频)上传到BOS。由于该插件还未官方化,用户须自行安装。

  首先,进入应用的发布设置页面,对当前线上版本进行备份并下载代码包,下载成功后解压。

  

 

  然后从github下载插件压缩包(压缩包里BaiduBce.phar就是bos的phpsdk,插件代码都在wp-bae.php里)。将插件解压后复制到wp-content/plugins目录下。重新打包(zip压缩)代码并上传。

 

  再然后选择刚上传的版本进行部署,注意部署会先清理掉线上磁盘的数据,所以代码修改过程中尽量避免产生新的数据。

部署成功后,激活并配置插件,可参照插件下载页面的使用说明。

 

  在“设置-百度云插件”里填写Bucket名、AK、SK、HOST(HOST用来确定bucket所在的region,e.g. bj.bcebos.com)。这里有一点要注意,建议为wordpress单独建一个bucket,然后把bucket设为公共读(即只有本人能上传,但所有人都能读取)。之后在媒体库里正常添加文件即可,所有添加的文件会按照月份存放(e.g. uploads/2015/12/img1.jpg),相同的目录结构会创建在BOS的bucket下。

  最后

  应用模板有其特殊性,针对的模板多会在线生成一些数据,并不适合放在无状态的容器中运行,因此针对模板类的应用,释放了无状态的限制(应用重启、休眠、启动等操作不再清理线上数据),但同时引入了新的限制,只允许部署一个实例(多个有状态的容器之间的数据同步是个问题,如果使用共享存储,则成本较高)。