Vultr 主机搭建 Ghost 博客

Vultr 主机搭建 Ghost 博客

封面:Unsplash

一.环境准备

Vultr VPS
CentOS 7.3 x64
Node v10.15.3
MariaDB
Ghost 2.19.1
Nginx 1.14.2

二.开始安装

使用 Xshell 等工具连接你的云服务器或VPS,具体的使用方式请 Google 咯。

2.1 更新 CentOS
[root@bwh /]# yum update -y
[root@bwh /]# yum install -y wget     
2.2 安装 vim,curl
[root@bwh /]# yum install -y vim
[root@bwh /]# yum install -y curl

如需要安装其他工具,例如 gcc-c++ 等,请根据终端相关提示进行安装

2.3 安装 Nodejs

1 安装 EPEL

[root@bwh /]# yum install epel-release -y

2 安装 Nodejs 和 npm

[root@bwh /]# curl -sL https://rpm.nodesource.com/setup_10.x | bash -
[root@bwh /]# yum install -y nodejs

安装完成后,在终端输入 node -v 回车,显示版本号则表示安装成功。

2.4 安装 Nginx

添加Nginx软件库

[root@bwh /]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

接着安装 Nginx

[root@bwh /]# yum -y install nginx

设置 Nginx 自动启动

[root@bwh /]# systemctl enable nginx.service

启动 Nginx 并查看 Nginx 服务状态

[root@bwh /]# systemctl start nginx.service
[root@bwh /]# systemctl status nginx.service

在浏览器中输入IP地址,可以看到默认的Nginx的网页了。

2.5 安装 MySQL(MariaDB)

CentOS 7开始,CentOS使用MariaDB代替了MySQL数据库,MariaDB系MySQL的一个分支,使用方法和MySQL基本一致,主要由开源社区维护,采用GPL授权许可。开发此分支的主要原因之一:Orcale公司收购了MySQL,所以MySQL有闭源的可能,因此社区采用了开源的MariaDB来规避此风险

1.安装 MariaDB

[root@bwh /]# yum install mariadb-server -y

2.启动 MariaDB 服务

[root@bwh /]# systemctl start mariadb.service

3.设置开机启动

[root@bwh /]# systemctl enable mariadb.service

4.配置 MariaDB

[root@bwh /]# mysql_secure_installation

然后根据列出来选项的分别进行设置即可

Set root password? [y/n]             #设置数据库root密码
anonymous users? [y/n]               #是否删除匿名用户
Disallow root login remotely? [y/n]  #是否禁止root用户远程登录
Remove test database and access to it? [y/n]  #是否移除默认的test数据库
Reload privilege tables now? [y/n]   #是否刷新授权表使修改生效

5.配置 MariaDB 字符集编码

[root@bwh /]# vim /etc/my.cnf

插入以下内容

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

Esc -- :wq 保存退出

6.重启 MariaDB

[root@bwh /]# systemctl restart mariadb.service

7.新建数据库,用以存放你的博客数据

[root@bwh /]# mysql -u root -p                   #输入root数据库用户密码
MariaDB [(none)]> create database exampleDb;         #创建 exampleDb 数据库
MariaDB [(none)]> insert into mysql.user(Host,User,Password) values("localhost","xxx",password("xxx"));       #新增用户,xxx替换成你自己的用户名/密码
MariaDB [(none)]> flush privileges;              #刷新权限表
MariaDB [(none)]> grant all privileges on exampleDb.* to 'xxx'@'%' identified by 'xxx'; # 赋予用户权限,xxx 表示用户名/密码
MariaDB [(none)]> flush privileges;              #赋予用户权限后,再次刷新权限表

至此,数据库设置完成。

2.6 安装 Ghost

1.创建Ghost存放目录

[root@bwh /]# mkdir var/www
[root@bwh /]# mkdir var/www/sites

2.转到www目录,在线下载 Ghost

[root@bwh www]# curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip

3.解压下载的 ghost.zip 文件到 sites 目录下

[root@bwh www]# unzip ghost.zip -d sites

4.cd进入 sites 目录,使用以下命令初始化 Ghost 包

[root@bwh sites]# npm install 或 yarn

5.修改 Ghost 默认配置

[root@bwh sites]# cd core/server/config/env/

里面有4个Ghost的配置文件

config.develogment.json	     #开发配置
config.production.json	     #生产配置(发布到你的服务器需要用到这个)
config.testing.json	         #测试配置
config.testing-mysql.json	 #mysql测试配置

5.1 更改开发配置文件 config.development.json

[root@bwh env]# vim config.development.json

将原内容替换成以下

 {
   "url": "http://example.com",		#将example.com修改成你的域名
   "database": {
       "client": "mysql",
       "connection": {
           "host": "127.0.0.1",
           "user": "用户名",           #这里是在 2.5节7 中设置的用户
           "password": "用户密码",
           "database": "exampleDb",
           "charset": "utf8"
       },
       "debug": false
   },
   "paths": {
       "contentPath": "content/"
   },
   "privacy": {
       "useRpcPing": false,
       "useUpdateCheck": true
   },
   "useMinFiles": false,
   "caching": {
       "theme": {
           "maxAge": 0
       },
       "admin": {
           "maxAge": 0
       }
   }
}

Esc -- :wq 保存退出,同理修改生产配置文件 config.production.json,修改后内容如下

{
    "url": "http://example.com",
    "server": {
        "port": 2368
    },
    "database": {
        "client": "mysql",
        "connection": {
            "host": "127.0.0.1",
            "user": "用户名",
            "password": "用户密码",
            "database": "exampleDb",
            "charset":"utf8"
        }
    },
    "paths": {
        "contentPath": "content/"
    },
    "logging": {
        "level": "info",
        "rotation": {
            "enabled": true
        },
        "transports": ["file", "stdout"]
    }
}

Esc -- :wq 保存退出,Ghost 相关的配置完成。进入 sites 目录,使用下面的命令启动 Ghost,在浏览器中输入你的公网ip就可以查看效果。

[root@bwh sites]# npm start --production
2.7 配置 Nginx 反向代理

服务器 Ghost 已经部署好了,但是我们想在外网通过域名访问到自己的博客,那么我们就需要配置 Nginx 来作为 Ghost 的反向代理。

进入 Nginx 配置目录,新建 Ghost 博客的 Nginx 配置文件

[root@bwh /]# vim /etc/nginx/conf.d/your_sites.conf

以下内容输入到文件中

server {  
     listen 80;
     server_name example.com;        #example.com改为你的域名
     
     access_log /var/log/nginx/ghost.log;
     error_log /var/log/nginx/ghost_error.log;
     
     proxy_buffers 16 64k;
     proxy_buffer_size 128k;

     location / {
         proxy_pass http://127.0.0.1:2368;   # 代理到Ghost配置文件配置的服务器
         proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
         proxy_redirect off;
         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-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
     }
 }

Esc -- :wq 保存后退出。将/etc/nginx/conf.d/ 目录下的默认配置文件 default.conf 修改为default.conf.bak,让 Nginx 只引用 your_sites.conf。

[root@bwh conf.d]# mv default.conf default.conf.bak

重启Nginx服务。

[root@bwh conf.d]# systemctl restart nginx.service
2.8 使用进程管理器 pm2 让 ghost 永久后台运行

在2.6节中我们在终端 npm start ghost,此时博客在终端跑起来了,但是如果一旦终端关闭,我们的博客就无法访问了,为了让应用程序一直在后台运行,我们使用进程管理器 pm2 来管理它,详细的使用方式可以查看这里。使用下面命令安装 pm2

[root@bwh conf.d]# npm install -g pm2

pm2 启动 ghost

[root@bwh ghost]# NODE_ENV=production pm2 start index.js --name "ghost"

使用 pm2 命令重启/停止/启动 ghost

[root@host ghost]# pm2 restart ghost
[root@host ghost]# pm2 stop ghost
[root@host ghost]# pm2 start ghost

你的域名做好解析后,打开浏览器,输入你设置的IP或域名,就能外网访问你的博客了。

Ghost 其他文章

为了更“快”的体验,把博客从 Vultr 搬到了阿里云
给 Ghost 博客添加 Tags 归档页

可能还喜欢下面的内容

使用 prerender-spa-plugin 插件无法启动 chromium 进行预渲染

使用 prerender-spa-plugin 插件无法启动 chromium 进行预渲染

解决 iOS 10.3.3 设备越狱后 Cydia 无法联网问题

解决 iOS 10.3.3 设备越狱后 Cydia 无法联网问题

5个简单步骤使用h3lix越狱iOS 10.3.3

5个简单步骤使用h3lix越狱iOS 10.3.3

ins@heyrock