从零开始搭建Ghost博客-Ubuntu18.04-使用腾讯云数据库

网上有很多搭建ghost博客的教程,但是有的步骤不详细,也少有使用云数据库搭建的教程,基本都是本地数据库。这篇教程的目的就是想要教大家一步一步搭建ghost博客,同时把数据库放在腾讯云数据库上,不再使用本地数据库

一、所需环境

华为云服务器(配置:内存2G,硬盘40G,操作系统Ubuntu 18.04)
腾讯云数据库(类型:MySQL,版本5.7)

二、详细步骤

1、安装GCC和G++

1.1、首先查看系统是否已经安装,使用如下命令:
gcc --version
g++ --version
如果正确显示版本则已经安装,直接进入下一步操作。否则,使用如下命令进行安装:

sudo apt-get install gcc
sudo apt-get install g++

1.2、如果没有安装开发编译工具包,则使用如下命令安装:

sudo apt-get install build-essential

2、安装Node.js

执行以下命令,安装Node.js

sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

3、安装nginx

3.1、输入以下命令安装Nginx。

sudo apt-get update
sudo apt-get install nginx

3.2、验证是否正确安装:
在浏览器中通过域名或者 IP 地址进行访问Nginx,如果Nginx正常启动则会打开Welcome to nginx的欢迎页面。
3.3、配置Nginx
新建配置文件
vim /etc/nginx/sites-available/ghost.conf
在配置文件中输入以下内容:

server {
    listen 80;
    server_name xx.xxx; #这里写自己的域名或者ip地址
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

3.4、把配置文件软链接到sites-enabled中:
sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/ghost.conf
3.5、重启Nginx
sudo service nginx restart

4、创建新用户

4.1、执行以下命令,创建新用户。
adduser 你的用户名
输入此命令后,会要求你输入密码,自己设置即可。
然后要求你输入一系列信息,我们直接按回车表示默认即可。
最后问你是否确认,输入y
4.2、执行以下命令,将新创建的用户添加到superuser组。
usermod -aG sudo 你刚才创建的用户名
4.3、执行以下命令,切换到你刚才创建的用户。
su 你刚才创建的用户名

5、安装Ghost-CLI

sudo npm i -g ghost-cli

6、安装Ghost

6.1、创建一个文件夹:
sudo mkdir -p /var/www/ghost
6.2、更改所有者:
sudo chown [user]:[user] /var/www/ghost
6.3、进入我们刚才创建的文件夹:
cd /var/www/ghost/
6.4、用Ghost-CLI 安装Ghost。
ghost install
接下来会提示我们没有找到本地数据库:

由于我们要使用云数据库,所以无需本地安装数据库,所以直接输入y,按下回车
接下会进行配置:
在配置数据库的时候,host填写云数据库地址,username填写云数据库用户名,表名填写事先在云数据库中创建好的表名。密码填写云数据库密码。如果你的云服务器和云数据库不在同一可用区之内,你需要使用外网地址,否则使用内网即可
注意,有云数据库如何创建用户、创建数据库、内网外网是什么等基本概念,请参考腾讯云官方文档,或参考本站今后会推出的文章。
根据作者的实际经验,由于访问云数据库需要在地址后面加端口,而将地址:端口直接写在上面host中并不能让配置成功,需要单独使用vi config.production.json打开配置文件,在有关数据库的配置中加一项port,填写云数据库的端口。
如下所示:

7、开始配置用户

至此安装完成,访问http://你的IP或域名/ghost按系统说明配置即可。