Ghost博客升级到0.10版本

Ghost最近有更新了,从0.9到0.10更新间隔比较短,ghost官网显示最新更新日期是8月31号,这次升级带了那些变化,请自行浏览官网页面. 当然这次升级对于使用又拍云加速储存的用户来说会有一个小问题,ghost启动出现错误,更新后发现储存有问题,仔细看了下错误日志,发现是Ghost Upyun Storage需要更新,下面我们来看看如何操作:

升级Ghost博客

0.准备工作

官网升级说明页面说,如果使用PM2来管理ghost的话,那么在升级之前请用pm2 stop ghost命令停止ghost运行,呆升级之后使用pm2 start ghost再开启。

1.下载

最新版本的Ghost。

curl -LOk https://ghost.org/zip/ghost-latest.zip  

2.解压

解压Ghost到某个临时目录,这里假设临时目录为ghost-temp。

unzip ghost-latest.zip -d ghost-temp  

3.删除旧文件

删除原Ghost安装目录下的core,index.js,node_modules文件夹以及所有的json文件。 Ghost一般默认的安装位置在/var/www/ghost/,这里使用path-to-ghost-install来代替。

rm -rf path-to-ghost-install/core path-to-ghost-install/index.js path-to-ghost-install/node_modules path-to-ghost-install/*.json  

清除缓存

npm cache clear  

4.复制并覆盖新文件

复制解压缩文件夹中的上述文件(node_moduels不包括)到原Ghost安装文件。

cp -R ghost-temp/core ghost-temp/index.js ghost-temp/*.json ghost  

5.检查文件夹权限
在更新覆盖文件后,你需要检查他们有正确的权限。拥有的用户和用户组别不同权限也不一样。例如,发现core文件拥有的用户和组别都是root,我们需要把root用户和组别改为www,命令如下chown -R www corechgrp -R www core,但是更新ghost替换的文件很多,我们这样操作一次性更还所有文件的拥有的用户和组别,退回到wwwroot文件夹下,执行chown -R www ghostchgrp -R www ghost命令即可。

6.更新ghost库的依赖

进入Ghost安装文件夹

cd ghost  
npm install --production  

7.重启ghost

npm start --production  

这里会发现错误提示,ghost并不能启动起来,返回到ghost更新的页面发现,0.10版本需要更新自定义储存数据模块。

进入官网的使用自定义储存数据模块页面上有又拍云的链接,已经支持0.10版本:

安装

在 content 文件夹中创建一个名为 storage 的文件夹 将本仓库克隆至 storage 文件夹下

cd path/to/your/ghost/content/storage  
git clone https://github.com/sanddudu/upyun-ghost-store.git  
或者 下载 zip 包 后解压至 storage 文件夹下(请将解压出的文件夹名改名为 upyun-ghost-store)

安装依赖包

cd upyun-ghost-store  
npm install  

配置

在 upyun-ghost-store 文件夹下自带已经修改好的 config.example.js(无备注),您只需要复制到主目录后修改相应内容,并改名为 config.js ,您也可以自行根据以下默认配置自行添加(请不要忘记根据实际情况在末尾添加逗号)。

storage: {  
  active: 'upyun-ghost-store',
  'upyun-ghost-store': {
    bucket: 'my-bucket', //bucket 名称
    operator: 'somebody', //操作员用户名
    password: 'secret', //操作员密码
    domain: 'http://bucket.b0.upaiyun.com', //空间绑定的域名,必须带 "http(s)://" ,结尾不能有 "/"
    filePath: 'YYYY/MM/', //文件远端保存地址,默认为日期格式,由 moment 解析后填充,
                            您可以修改为 "[您的目录地址]",开头不能加 "/",结尾必须加 "/"
                            具体格式参见: [http://momentjs.com/](http://momentjs.com/)
    imgVersion: '' // 自定义版本,需带上分隔符(如 _large )。使用原图则留空或删除该选项
  }
}

到此自定义储存数据模块更新完毕。

8.启动pm2

pm2 start ghost  

至此Ghost 0.10版本更新完毕。