Ghost博客安装简明指南

前言

Ghost 是一套基于 Node.js 构建的开源博客平台(Open source blogging platform),具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写,目标是取代臃肿的 WordPress。

如果你受够了wordpress的臃肿,如果你苦于寻找简介的主题,想要享受写作的话,我十分推荐Ghost博客。
但是因为个人需求,我现在选择了wordpress

这里简单介绍一下如何快速安装Ghost博客。

安装环境

  • centos7
  • DigtalOcean VPS (只要有任意一台VPS即可
  • Node 4.2.6 (官方指定最新LTS
  • Nginx (内存占用低
  • Ghost v0.7.4 full (zh) (中文支持
  • mariadb
  • 以下命令都是以root用户执行

安装准备

yum update

都懂的…………

安装Node

wget nodejs.org/dist/v4.2.6/node-v4.2.6.tar.gz
tar zxvf node-v4.2.6.tar.gz  
cd node-v4.2.6
./configure 
make && make install  

通过node -v 检查版本可检测是否已成功安装

安装nginx

yum -y nginx          #安装
service nginx start  #启动服务
chkconfig nginx on   #服务开机启动

安装成功后打开浏览器输入你的IP就能看到 Welcom to Nginx! 的字样

配置nginx

cd /etc/nginx/conf.d/
rm default.conf # 删除默认配置
vi ghost.conf

ghost.conf 输入以下内容

server {  
    listen 80;
    server_name example.com; #将 example.com 改为你的域名或ip。

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

重启nginx 是配置文件生效

service nginx restart 

安装mariadb

ghost默认使用的是sqlite数据库,众所周知,sqlite数据库在应对较大的数据时比较乏力,所以这里我们安装mariadb

yum -y install mariadb mariadb-server
service mariadb start   # 启动服务
chkconfig mariadb on  # 开机启动
mysql_secure_installation # 配置mariadb

配置mariadb只要你最开始设置一下密码,其他默认就好
为了避免数据库存放的中文是乱码,我们还需要设置数据库的编码

vi /etc/my.cnf

写入以下内容

[client]
default-character-set=utf8  
[mysql]
default-character-set=utf8  
[mysqld]
character-set-server=utf8  
collation-server=utf8_general_ci  

保存退出后,需要重启一下服务

service mariadb restart

当然最重要的,在安装好数据库之后,我们需要专门为其新建一个用户来存放数据。

mysql -u root -p # 输入设置好的密码  
create database ghost; # 创建ghost数据库  
grant all privileges on ghost.* to 'ghost'@'%' identified by 'password'; # 在password处改为你要设置的密码
flush privileges # 重新读取权限表中的数据到内存,不用重启mysql就可以让权限生效 
exit

这样数据库就算是准备好了。

安装Ghost

接下来就是博客的主体程序了,首先进行安装

cd /var/www
wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip
unzip Ghost-0.7.4-zh-full.zip -d ghost
cd ghost

安装好后需要进行配置,ghost目录中有样例配置文件,我们 cp 一份进行更改

cp config.example.js config.js  
vi config.js

查找 production 模式进行更改

production: {  
    url: 'http://nodekey.com', # 修改为你的域名或者IP,注意加上http://
    mail: {},
    database: {
        client: 'mysql'
        connection: {
            host     : '127.0.0.1',
            user     : 'ghost',            # 数据库用户
            password : 'password', # 数据库用户密码
            database : 'ghost',        # 数据库名称
            charset  : 'utf8'
        },
    server: {
            host: '127.0.0.1',
            port: '2368'   # 2368是ghost的默认端口,若修改该端口记得在nginx中做相应改变
        }
    }

保存退出,执行命令

npm start --production

即在centos服务器上运行了ghost,打开浏览器输入你的ip或者域名,即可成功访问你的博客。打开http://your_ip/ghost 即可进入博客后台管理博客。按ctrl – c退出进程。

pm2后台管理博客

众所周知,当你在一个终端中运行一个进程时,你无法无时无刻都管理这这个进程,一旦你按 ctrl – c退出进程,你的博客也就自然无法访问了。这时候就需要一个后台进程管理应用,在这里我用的是pm2

cd /var/www/ghost
npm install pm2 -g     # 安装PM2
NODE_ENV=production pm2 start index.js --name "ghost"
pm2 startup centos
pm2 save

执行命令重启ghost

pm2 restart ghost

如果你的ghost有过非配置上的更改,你需要执行pm2 --update-env restart ghost 重启使其生效。

更换主题

Ghost更换主题还是比较方便的, cd /var/www/ghost/content/themes/ 即可进入主题目录。
你可以通过git下载主题,ftp上传主题,再执行 pm2 --update-env restart ghost更新环境。
最后进入 http://your_ip/ghost 更换一下就可以了。

在这里我十分推荐 ghostium
真正为写作和阅读而生的主题!!!

原生Ghost的一些缺陷

  • markdown不支持TOC,不支持自动换行(就是说你必须手动加一个
    才能换行
  • 定制性不强,不易扩展,在样式上大多需要源码上的更改,当然对象是我这种不太懂前端的小白,对大佬来说还是很适合的。
  • 过于简洁……(源自acmer对标签与目录的强烈需求)
  • 在索引上表现不是很好