升级Ghost博客,并使用pm2管理

最近对博客进行了升级,中间遇到了很多小问题。此外,升级后,不知为何forever不能自启动了,后来尝试了pm2发现很好用,遂用pm2代替了forever来管理Ghost博客。

升级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安装目录下的coreindex.jsnode_modules文件夹以及所有的json文件。

Ghost一般默认的安装位置在/var/www/ghost/,这里使用path-to-ghost-install来代替。

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

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

cp -r ghost-temp/core ghost-temp/index.js ghost-temp/*.json path-to-ghost-install  

5. 进入Ghost安装文件夹

cd path-to-ghost-install  

6. 安装Ghost

npm install --production  

注意:如果你像我一样使用了DigitalOcean来托管Ghost,执行这一步可能会导致内存不足(DigitalOcean的虚拟机默认没有开启swap),因此,可能需要在此处开启swap分区,保证安装成功,具体的方法见下一节。

7. 启动Ghost

依据你使用的不同管理工具,可能会执行如下命令中的某一个service restart ghostforever restart index.jspm2 restart ghostinpm start --productionrs

为DigitalOcean开启swap

swap即虚拟内存,具体的概念请参考操作系统的相关书籍。简单的讲swap将磁盘的一部分虚拟成为了内存。

在DigitalOcean上的Linux中开启swap的方法如下:

1. 创建一个swap文件:

sudo if=/dev/zero of=/swapfile bs=1024 count=1024k  

上述命令在根目录下创建了一个名为swap的文件,其大小为1024*1024k=1GB。

2. 建立Linux的swap区:

sudo mkswap /swapfile  

3. 使能上述swap区:

sudo swapon /swapfile  

使用pm2来管理Ghost

之前一直使用forever来管理Ghost,但这次升级之后,发现forever不能正常的开机子启动,遂切换至pm2。

1. 安装pm2

npm install pm2 -g  

2. 使用pm2启动Ghost:

NODE_ENV=production pm2 start index.js --name "Ghost"  

3. 将Ghost添加至pm2的管理列表:

pm2 save  

4. 设置pm2开机自启动:

sudo pm2 startup  

重启下系统,试试是否启动成功。

参考资料: http://support.ghost.org/deploying-ghost/ http://pm2.keymetrics.io/docs/usage/startup/ http://support.ghost.org/how-to-upgrade/


¶ The end