in Ghost ~ read.

更新Ghost博客

本文地址:https://chihoc.com/upgrade-ghost/
欢迎转载,请注明出处,谢谢

事前准备

  1. 备份

    登录后台,到https://www.yourdomain.com/ghost/settings/labs/ ,使用导出功能导出一份json。同时,到你的Ghost安装根目录复制content目录。

  2. 检查ghost重启命令是否正常

    ​ 如使用service服务启动Ghost,则命令为: service ghost restart

    ​ 如使用forever服务启动Ghost,则命令为: forever restart index.js

    ​ 如使用pm2服务启动Ghost,则命令为: pm2 restart ghost

  3. 如果有涉及越版本更新,到官网看看是否会有注意事项:http://support.ghost.org/how-to-upgrade/

更新

  1. 下载最新ghost: curl -LOk https://ghost.org/zip/ghost-latest.zip
  2. 解压之:unzip ghost-latest.zip -d ghost-latest
  3. 到Ghost安装目录删除core文件夹(注意不要删除content文件夹
  4. ghost-latest中复制并覆盖core文件夹、index.jspackage.jsonnpm-shrinkwrap.json到Ghost安装目录中。如果使用了默认主题Casper,需要复制并覆盖content/themes/casper文件夹
  5. 更改core文件夹执行用户:chown -R ghost:ghost core
  6. 更新依赖:npm install --production
  7. 重启服务

送上脚本一份,但是要把Ghost地址改成自己的地址。

#!/bin/sh

echo -e "是否已经到后台导出json文件?确定按 y 取消按 任意字符"

read request

if [ $request == 'y' ] || [ $request == 'Y' ];
then
        #请修改你的ghost安装目录
        ghostPath=$(pwd)/ghost
        scriptPath=$(pwd)
        date=`date "+%Y%m%d"`

        echo "开始备份Ghost"
        cp -rf ${ghostPath} ${ghostPath}_${date}

        echo "下载最新版"
        curl -LOk https://ghost.org/zip/ghost-latest.zip

        echo "解压最新版"
        unzip -qq -o ghost-latest.zip -d ghost-latest

        echo "删除旧文件"
        rm -rf ${ghostPath}/{core,content/themes/casper,index.js,*.json,*.md}

        echo "覆盖新文件"
        cp -rf ghost-latest/{core,index.js,*json,*md} ${ghostPath}
        cp -rf ghost-latest/content/themes/casper ${ghostPath}/content/themes/casper

        echo "授权目录"
        chown -R ghost:ghost ${ghostPath}/core

        echo "更新依赖"
        cd ${ghostPath}
        npm install --production
        cd ${scriptPath}

        echo "重启服务"
        pm2 restart ghost

        echo "删除无用文件"
        rm -rf ghost-latest ghost-latest.zip

        echo "*********************执行完成************************"
else
        echo "放弃执行,程序退出"
        exit 0
fi

万一,我说万一更新之后真的起不来了,看看error_log找找解决方法,实在不行,就恢复备份吧。(之前我就遇过坑,看log才发现原来不是更新过程出问题了,是新版不支持nodejs v0.12版了)