专栏首页Small CodeGhost 博客平台安装和配置

Ghost 博客平台安装和配置

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/u010099080/article/details/100977647

Ghost 是一个博客发布平台,和 Hexo 等类似。本文简要介绍如何安装和配置 Ghost,环境为 Ubuntu 16.04 系统上,假设你已经拥有一个服务器和一个域名。

安装

安装过程主要参考官方教程,下面我总结下:

  1. 在系统上创建一个新用户。一般安装 Ghost 会使用一个新用户,当然这也不是必须的。创建用户可以使用 useraddadduser 命令,然后使用 usermod 命令将其加到 sudo 组里,最后使用新用户登录系统。命令详细使用方法可参考其文档,假设我们创建的用户叫 price
  2. 更新系统,安装 NGINX、MySQL、Node.js 和 Ghost-CLI sudo apt update # 安装 NGINX、MySQL # 安装 MySQL 时会弹出窗口让输入 MySQL 用户名和密码 # 用户名默认 root,密码自己设置,安装 Ghost 时会用到 # 如果你的系统是 18.04,那么需要额外的一些步骤 # 参考 https://ghost.org/docs/install/ubuntu/#mysql-on-ubuntu-1804 sudo apt install nginx mysql-server # 配置防火墙 sudo ufw allow 'Nginx Full' # 安装 Node.js curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash sudo apt install nodejs # 安装 Ghost-CLI sudo npm install ghost-cli@latest -g
  3. 创建安装目录,配置目录权限,安装 Ghost # 创建并配置目录 sudo mkdir -p /var/www/ghost sudo chown price:price /var/www/ghost sudo chmod 775 /var/www/ghost cd /var/www/ghost # 安装 Ghost ghost install
  4. ghost install 命令执行之后,首先会下载安装 ghost,然后会让你一项一项的配置 ghost,主要有一下几项:
    • 博客地址:例如 https://example.com,带上 http 或者 https,如果使用 https, Ghost 会自动帮你设置。使用 IP 地址会报错,但是这个具体怎么报错不清楚,还没遇到过,还是推荐先自己买个域名
    • MySQL hostname:如果 Ghost 和 MySQL 在一个服务器上的话,这一项默认 localhost 即可
    • MySQL 用户名密码:前面安装 MySQL 的时候你设置的用户名密码
    • Ghost 数据库名:默认即可
    • 是否设置一个 Ghost MySQL 用户:默认是,前提是你前面提供的 MySQL 用户是 root 用户
    • 是否设置 NGINX:默认是
    • 是否设置 SSL:如果你前面提供的博客地址是 https,那么就选是,Ghost 会自动帮你用 Let’s Encrypt 设置 SSL。你也可以之后手动执行 ghost setup ssl 来设置
    • 你的邮箱:输入你的邮箱地址,万一你的证书有问题(比如到期了),Let’s Encrypt 就会通知你,这个是和上面的 SSL 相关的
    • 是否设置 systemd:默认是
    • 是否启动 Ghost:默认是

至此,安装工作全部完成,顺利的话就可以输入你的博客地址进入博客了,也可以使用 ghost ls 来查看你的博客是否在运行。

配置

Ghost 安装好启动后,就可以输入你的博客地址进入博客了,在你的博客地址后加上 /ghost 进入博客后台页面。第一次进入需要先创建一个新作者(用户),然后就可以进行编辑发表文章了。

里面有很多项可以配置,下面我说下如何实现一些常用的功能。

代码高亮

代码高亮可以使用 Prism JS 库和 Ghost 的 Code injection 来实现,后者中的代码会加入到每个页面中。

具体做法是将 Prism 的 js(实现代码高亮) 和 css(主题) 地址分别插入到 Code injection 中的 foorter 和 header 中。地址可以使用 Cloudflare 提供的 CDN 地址

对于 js 来说,需要至少两个:一个核心 js 和 N 个特定语言相关的 js。如果你只需要 Python 语法高亮,那么只用添加 Python 的 js 即可。首先将核心 js 放在最上面,然后依次放入你需要的语言的 js,例如我想要实现 bash 和 Python 的语法高亮,那么在 footer 中内容如下:

<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/prism.min.js" integrity="sha256-NFZVyNmS1YlmiklazBA+TALYJlJtZj/y/i/oADk6CVE=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-bash.min.js" integrity="sha256-0W9ddRPtgrjvZVUxGhU/ShLxFi3WGNV2T7A7bBTuDWo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-python.min.js" integrity="sha256-zXSwQE9cCZ8HHjjOoy6sDGyl5/3i2VFAxU8XxJWfhC0=" crossorigin="anonymous"></script>

对于 css 来说,指定了背景主题。Prism 提供 8 种主题,为了能够直观看到每个主题的样子,我汇总起来做了一个图如下,你可以选择你想要的放入 header 即可:

例如:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/themes/prism-tomorrow.min.css" integrity="sha256-xevuwyBEb2ZYh4nDhj0g3Z/rDBnM569hg9Vq6gEw/Sg=" crossorigin="anonymous" />
import numpy as np
import pandas as pd

# numpy 随机数
a = np.random.rand(5, 4)
df = pd.DataFrame(a, columns=list('ABCD'))

数学公式

数学公式一般使用 MathJax 来渲染,同样将如下代码放入 Code injection 即可:

<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML' async></script>

这样会自动时刻保持最新版本。

E=mc2E = mc^2E=mc2

加密博客站点

实际上是为博客设置一个密码,只能输入密码访问,并且会取消一切 SEO 优化。在 SETTINGS -> General -> ADVANCED SETTINGS 处启用 Make this site private 即可。

邮箱配置

邮箱配置较长,放在了一篇单独博文中,参见使用 Mailgun 配置 Ghost 邮箱一文。

Reference

END

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Python】统计字符串中英文、空格、数字、标点个数

    题外话:今天打酱油的做了**数据挖掘工程师的在线笔试题,被打击了。 本文代码可在 这里 下载。 问题 在网上无意间看到这么一个题目:统计一个字符串中的中英文、空...

    Alan Lee
  • BERT 是如何构建模型的

    前面我写了一篇文章来讲 BERT 是如何分词的,现在,轮到该说说 BERT 模型是如何定义的了。

    Alan Lee
  • Python-NumPy基础

    前言 这两天读完《利用Python进行数据分析》 这本书的第4章:NumPy 基础:数组和矢量计算 后,在进行下一步阅读高级应用前,先整理本章内容,做个笔记备查...

    Alan Lee
  • MySQL参数对比浅析(r11笔记第97天)

    今天按照计划,决定得总结下MySQL的参数了,说来想来,立即就做。 大体算了下,手头的环境主要还是使用了Percona分支,官方的相对较少,就暂且按照Per...

    jeanron100
  • 普通工程师和优秀工程师的差距在哪儿

    我相信每个工程师都曾怀揣一个成为技术大牛的梦想,可是真正走向技术大牛这条路的少之又少。工作中我们常常会发现,有些同学工作没几年但成长迅速;很快就能走向团队核心岗...

    张磊BARON
  • 我们和优秀工程师的差距在哪儿

    我相信每个工程师都曾怀揣一个成为技术大牛的梦想,可是真正走向技术大牛这条路的少之又少。工作中我们常常会发现,有些同学工作没几年但成长迅速;很快就能走向团队核心岗...

    张磊BARON
  • 如何搭建 Ghost 博客

    Ghost是一个轻量级(~7.5MB)的开源博客平台,非常易于使用。Ghost是完全可定制的。互联网上有很多可供Ghost使用的免费或付费的主题。

    Mr.Crypto
  • python通过一个语句分析几个常用函数和概念

    前言 过年也没完全闲着,每天用一点点时间学点东西,本文为大家介绍几个python操作的细节,包含all、any、for in等操作,以及介绍我解决问题的思路。 ...

    魏守峰
  • K8S学习笔记之Kubernetes 配置管理 ConfigMap

    很多情况下我们为某一应用做好镜像,当我们想修改其中的一些参数的时候,就变得比较麻烦,又要重新制作镜像,我们是不是有一种方式,让镜像根据不同的场景调用我们不同的配...

    Jetpropelledsnake21
  • 30天习惯养成

    今天是第五天了,越来越能体会到什么是“路漫漫”了,对于今天,可以用一句话概括,一上午画图,一下午敲键盘。

    陌无崖

扫码关注云+社区

领取腾讯云代金券