做系统ghost步骤图解_Ghost 博客搭建超全指南

本文详细介绍了如何从零开始搭建Ghost博客,包括本地安装、服务器部署、Nginx配置、SSL+HTTPS设置、多域名配置和主题开发测试。Ghost是一款基于Node.js和MySql的博客系统,提供简洁的后台和主题,适合追求自由的个人网站创建者。
摘要由CSDN通过智能技术生成

4fb6bdd8f5fa949a63f29c40e21c5a49.png

本篇是一个纯技术向的文章,需要你对计算机以及前端的知识进行一定的了解。一定会有人问:“都 2020 年了,做博客还有意义吗?”,其实这个意义看你怎么看待了。在现今这个流量社会,人们的关注点都被吸引在了微信公众号、微博、知乎等头部平台。如果你想在里面写作,那么相对的就要遵守规则。

而建立自己的网站,某种意义上来说就是为了追寻自由,可以被搜索引擎收录,可以与各式各样入口的人交流,被观察到。发展到现在,网站分为 静态网站动态网站内,最明显的区别就是是否用到了 数据库。有数据库就意味着有后台,就可以在线编辑,发布管理文章;但是对应的也需要很多其他的成本,比如说服务器。

Ghsot 简介

0c04566be9ec6d2552eae1ed72ff2fde.png

Ghost 是一款基于 Node.js 语言和 MySql 数据库的个人博客系统。其设计主旨是简化个人网站发布以及网上出版的过程。创始人是 Wordpress 的前员工。从 2013 年发布第一个版本以来,到今年的 v3.0,功能越发的完善。如果你不喜欢 Wordpress 的臃肿,那 Ghost 无疑更加的适合你。

官方推荐配置:

  • Ubuntu 16.04,Ubuntu 18.04 或 Ubuntu 20.04
  • NGINX(支持 SSL 的最低版本为 1.9.5)
  • 一个支持版本的 Node.js
  • MySQL 5.7 或 8.0
  • Systemd
  • 至少有1GB内存的服务器
  • 注册域名

Ghost 安装

目前为止我尝试了三种安装方式:

  • 本地安装:适合自己玩,体验 Ghost;以及开发测试主题。
  • 服务器部署:需要服务器和域名。

本地安装

本地安装的官方教程:https://ghost.org/docs/install/local/

主要分为三步:

  1. 在本地下载一个官方推荐版本的 Node.js
  2. 安装 Ghost-CLI
npm install ghost-cli@latest -g

安装完成后,可以运行 ghost help 查看支持的命令列表。

  1. 建立一个空的文件夹,安装 Ghost

首先建立一个空的文件夹,进入这个文件夹,运行以下命令:

ghost install local

安装完成后,可以访问 http://localhost:2368 浏览新站点。

也可以访问 http://localhost:2368/ghost 访问 Ghost 的后台。

d0e1c102f6ebf2c0ed065c5d5b4dbd7f.png

服务器部署

来到了这一步,相信你已经有一定的心里准备了,那么开始吧。

  • 我们要有一个自己的服务器,博主用的是阿里云。现在他们家也在进行双十一的活动,一年85元,三年只需 255 元(注意:仅限新用户)
  • 登陆服务器

现在要首先确定下你的系统是否为 Ubuntu 16.04,Ubuntu 18.04 或 Ubuntu 20.04,如果是那么恭喜你,可以按照官方教程一步一步走。

Ghost 官方教程:https://ghost.org/docs/install/ubuntu/

如果不是,那么有以下两个选择:(不过这两者是类似的,都是需要在 Nginx 这块需要自己手动配置)

  • 虽然是 Ubuntu 系统,但是已经安装了宝塔等面板,那么安装的时候会出现一些波折。不过幸运的是博主已经帮你踩了这些坑。
  • Centos 等非官方推荐版本,那么同样也要恭喜你,博主也已经帮你折腾完了,你只需要照着做就可以了。

安装步骤 CentOS:

  • 安装必要的组件:
# Install NGINX    
sudo apt-get install nginx    
# 激活 ufw,允许 HTTP 和 HTTPS 连接    
sudo ufw allow 'Nginx Full'

# Add the NodeSource APT repository for Node 12    
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash    
# Install Node.js    
sudo apt-get install -y nodejs

# Install MySQL    
sudo apt-get install mysql-server

667cf43eeca938f7db6dfddc96e2595f.png

在进行接下来的步骤前,需要添加 Ghost 的数据库及所属用户。在下面的 Ghost 安装的过程中需要普通用户进行操作,而普通用户没有权限登陆 MySQL,需要我们先配置好。Centos 和 Ubuntu 也需要进行这个操作!

mysql -uroot -p
create database <数据库名称>;
create user <数据库用户名> identified by '<数据库密码>';
grant all privileges on <数据库名称>.* to <数据库用户名>@'localhost' identified by '<数据库密码>';
flush privileges;
exit
  • 安装 Ghost-CLI

html sudo npm install ghost-cli@latest -g

安装完成后,可运行命令 ghost help 查看命令列表。

  • 安装 Ghost

出于安全考虑,在接下来的操作中不能使用 root 用户,所以我们要新建一个用户,把下面的 <user> 换成用户名(不要起名 ghos,容易起冲突)。

# Create a new user and follow prompts
adduser <user>

# Add user to superuser group to unlock admin privileges
usermod -aG sudo <user>

# Then log in as the new user
su - <user>

接着需要创建一个空文件夹,用来安装 Ghost。

# We'll name ours 'ghost' in this example; you can use whatever you want
sudo mkdir -p /var/www/ghost

# Replace <user> with the name of your user who will own this directory
sudo chown <user>:<user> /var/www/ghost

# Set the correct permissions
sudo chmod 775 /var/www/ghost

# Then navigate into it
cd /var/www/ghost

安装 Ghost。

ghost install

安装过程根据主机性能来决定,下面是选项配置讲解:

  • Enter your blog URL: 博客展示地址,格式:http(s):(www.)example.com,不支持ip地址。
  • Enter your MySQL hostname: 数据库主机地址,回车默认是 localhost
  • Enter your MySQL username: / Enter your MySQL password: 数据库用户名/密码,上面安装的数据库用户名是 root,密码是自己设置的。
  • Enter your Ghost database name: Ghost博客数据库名
  • Do you wish to set up "ghost" mysql user? 设置数据库用户名为ghost,这个为了避免权限太大导致数据瞎搞,Ghost官方推荐是y
  • Do you wish to set up Nginx? 自动化Nginx,推荐y
  • Do you wish to set up SSL? 配置SSL证书,推荐y,如果你有证书问题,请查看文章最下面的问题。
  • Enter your email (For SSL Certificate):个人邮箱,配置ssl证书需要的邮箱地址。
  • Do you wish to set up Systemd? 使用ghost进程管理工具,推荐y,个人觉得海星。
  • Do you want to start Ghost? 启动Ghost博客就可以进入网址访问。

注意:

System checks failed with message: 'Linux version is not Ubuntu 16 or 18'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using `ghost install local` instead.
? Continue anyway? Yes #提示系统不是ubuntu,是否继续?当然
  • 还有个问题就是在安装的过程中会碰到下载失败的问题,再次安装就会提示
A SystemError occurred.

Message: Current directory is not empty, Ghost cannot be installed here.

#对应的解决办法是:
#只需要执行 rm -rf *,删除全部文件,然后再次执行安装命令即可;、
#如果还是提示目录非空的话,那就删除 .ghost-cli 文件

如果可以正常启动那么恭喜你,你已经可以访问你的博客了。如果不可以那么大概率是 Nginx 配置的问题。那么接下来我们继续

8612fcdc03f46934b9a9f0343fc9fcfc.png

Nginx 配置

博主遇到的情况是,在 Ubuntu 上安装宝塔面板,之后在面板里安装的 Ghost,但是由于宝塔面板安装的 Nginx 的默认位置与 Ghost 设置时的位置不一致,导致检测不到,无法自动配置 Nginx,所以需要我们手动设置 Nginx 的配置文件。

CentOS 情况类似,也是 Ghost 设置安装过程中无法检测,自动配置文件,都需要我们手动配置。

我们需要先运行 nginx -t 来检查下文件的路径,比如我的显示的是 /www/server/nginx/conf/nginx.conf

博主的由于是宝塔面板,所以需要在 /www/server/panel/vhost/nginx 下新建一个配置文件,填入以下内容:

如果你的不是宝塔面板,可以在 /etc/nginx/conf.d/ 下新建文件填入!

server {
    listen 80;
    listen [::]:80;

    server_name huozk.com; #你的域名

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:2368;

    }

    location ~ .well-known{
        allow all;
    }

    client_max_body_size 50m;
}

填写完成后,只需重启下 Nginx 即可 systemctl restart nginx

SSL + HTTPS

如果你想为你的网站启用 SSL,那么就需要在 Nginx 中额外监听 443 端口,以及链接公钥和私钥。需要修改上述配置如下:

server {
    listen 80;
    listen 443 ssl;
    listen [::]:80;

    server_name huozk.com; #更改为你的域名
    ssl_certificate "/www/server/panel/vhost/ssl/huozk.com/_.huozk.com.crt";
    ssl_certificate_key "/www/server/panel/vhost/ssl/huozk.com/_.huozk.com.key";

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:2368;

    }

    #一键申请SSL证书验证目录相关设置
    location ~ .well-known{
        allow all;
    }

    client_max_body_size 50m;
}

到此,就大功告成了。你可以登录后台,跟着指引进行配置了。恭喜你,成为一名知识分享者!

63e6160953a679ad40974e74f3028ab9.png

多个域名设置

一般来说,我们都会用顶级域名来设置进入我们的博客,但是同时也会设置 www.huozk.com 这种方式来做另一个入口,那么我们需要怎么来做呢?

  1. 重新配置:ghost config url https://www.huozk.com
  2. 为该域名申请证书:ghost setup nginx ssl
  3. 再把域名修改回来:ghost config url https://huozk.com
  4. 还需要建立 Nginx 的配置文件,内容与上面类似。
  5. 添加 301 跳转到顶级域名:
if ($ssl_protocol = "") {
    return 301 https://$host$request_uri;
}
if ($host != iiong.com) {
    return 301 $scheme://huozk.com$request_uri; #请注意这里的huozk.com替换你的域名。
}
  1. 重启 Nginx 服务systemctl restart nginx

开发测试主题环境搭建

如果你想从零开发一个新的主题,那么非常推荐你看官方主题开发文档:https://ghost.org/docs/api/v3/handlebars-themes/

如果你不想这么麻烦只想在官方主题的基础上修改下样式,那么可以按照以下步骤搭建环境:

  1. 下载主题源文件,上传到本地搭建的 Ghost 里面。
  2. 找到 D:WebProjectsGHostcontentthemes 进入里面。
  3. 你还需要在你的电脑上全局安装 YarnGulp
  4. 命令行进入主题文件夹中,运行:
# Install    
yarn

# npm 包下载    
npm install

5. 如果你需要开发和测试主题,那么需要进入开发模式

# Run build & watch for changes $ yarn dev

6. 之后进行打包,执行命令后会打包到 dist/<theme-name>.zip ,现在你可以在你部署的博客里上传使用了。

yarn zip

END

总的来说,Ghost 虽然没有 Wordpress 安装那么轻松,但是其简介大方的后台和主题,还是很让人值得尝试的。而且使用了之后确实比 Wordpress 速度快(不过也和服务器带宽等有关联)。

参考链接

  1. https://ghost.org/docs/install/ubuntu/
  2. https://ghost.org/docs/install/local/
  3. https://xiaoyc.com/2020/10/15/2020-10-build-website-with-ghost/
  4. https://www.techsir.com/a/2020/01/60604.html
  5. https://www.moonue.com/03/521/
  6. https://www.ldsun.com/https-wei-ghostshe-zhi-ssllian-jie/
  7. https://iiong.com/gost-blog-install-notes/

关注微信公众号:huozk-com,查看更多关于技术、游戏、折腾的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值