前言

大概用了接近三年的WordPress博客平台,因为诸多原因放弃了它,目前看好的依然是Ghost平台,现在版本已经更新到Version 2,本地测试下的确不错,所以写下这篇文章。

由于Version 2还没好很好的解决从WordPress过渡,所以我放弃原来的文章转移并且转移到Hexo博客上。目前博客当作新博客来写作吧。

环境

目前主机配置是腾讯云低配机:1 CPU/1G RAM/1Mbps/40G ROM,系统是Ubuntu 16。Ghost博客需要在Ubuntu系统Node.js环境下运行,查看Ghost文档有了自己脚手架:Ghost-Cli,所以很大的程度上比之前方便多了。至于Nginx,MySQL可以用类似Oneinstack等一键包完成,这里不再表述。

安装NVM:

nvm是一个nodejs版本管理的工具,为什么需要nvm?nodejs版本迭代很快,而且转移包依赖很麻烦,总之nvm解决很对版本问题。具体可以查看Github的说明:nvm

由于Ghost不允许root安装,所以需要新建一个普通的账户:

adduser jaxson #ghost不允许root用户安装,所以需要新建个用户
usermod -aG sudo jaxson #ubuntu
su - jaxson #登录用户
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc #生效配置
nvm --version #出现版本号则安装成功

使用方法文档,根据文档我们需要进行一系列特定的配置并且按照Nodejs:

export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node #设置nodejs二进制文件镜像点为阿里淘宝镜像
source ~/.bashrc
nvm install 8.12.0 64 #安装版本8.12.0的64位版本
nvm use 8.12.0 #使用该版本
node -v
npm config set registry https://registry.npm.taobao.org #npm镜像替换为淘宝npm节点
npm config get registry #配置后可通过下面方式来验证是否成功
 
nvm install 8.12.0 --reinstall-packages-from = 8.11.0 #升级8.12.0版本并且将8.11.0依赖文件迁移过去

目前来看Node.js环境算是安装好了。下面该安装Ghost-Cli脚手架:

npm i -g ghost-cli #安装脚手架
 
cd ~/oneinstall && ./vhost.sh #域名绑定
cd /data/wwwroot/iiong.com/
 
sudo chown ubuntu:ubuntu /data/wwwroot/iiong.com/
sudo chmod 755 /data/wwwroot/iiong.com/
 
ghost install

然后进入配置时候将Do you wish to set up "ghost" mysql user?Do you wish to set up Nginx?选择No,因为自己搭建的所以不需要走Ghost那一套。

然后其他的地方该输入什么就输入什么。

然后修改你的Nginx 域名配置文件:

server {
    listen 80;
    listen 443 ssl http2;
    ssl_certificate /usr/local/nginx/conf/ssl/iiong.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/iiong.com.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_buffer_size 1400;
    add_header Strict-Transport-Security max-age=15768000;
    ssl_stapling on;
    ssl_stapling_verify on;
    server_name iiong.com www.iiong.com;
    access_log /data/wwwlogs/iiong.com_nginx.log combined;
    if ($ssl_protocol = "") {
        return 301 https://$host$request_uri;
    }
    if ($host != iiong.com) {
        return 301 $scheme://iiong.com$request_uri;
    }
 
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header X-Forwarded-Proto $scheme;
 
        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
    }
 
    location ~ ^/(assets)/ {
        gzip_static on;
        root   /data/wwwroot/iiong.com/content/themes/casper;
        expires     max;
        add_header  Cache-Control public;
        add_header  Last-Modified "";
        add_header  ETag "";
        break;
    }
 
    location ~ ^/(shared)/ {
        gzip_static on;
        root   /data/wwwroot/iiong.com/current/core;
        expires     max;
        add_header  Cache-Control public;
        add_header  Last-Modified "";
        add_header  ETag "";
        break;
    }
 
    location ~ ^/(content/images)/ {
        gzip_static on;
        root   /data/wwwroot/iiong.com;
        expires     max;
        add_header  Cache-Control public;
        add_header  Last-Modified "";
        add_header  ETag "";
        break;
    }
}

图片优化

图床使用的是Ghost qiniu图床:https://github.com/minwe/qn-store

如果在npm i提示权限不足可以配置:

sudo chown -R ubuntu:ubuntu ~/.npm/
#sudo chown -R ubuntu:ubuntu ~/.nvm/versions/node/v8.12.0/bin/