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

  • Adding code highlighting to Ghost blog
  • Prism
  • How to Add Syntax Highlighting to Ghost | Biron Themes
  • prism - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
  • MathJax | Beautiful math in all browsers.

END

Ghost 博客平台安装和配置相关推荐

  1. 制作ghost的linux系统安装方法,技术|如何在Linux平台上安装Ghost博客平台

    Ghost是一个相对较新的博客发布平台,它开始于众筹平台kickstarter上一个£25,000英镑的众筹项目.尽管WordPress依然是网上主流的博客工具,但它现在已然是一个拥有众多第三方开发功 ...

  2. linux7系统能用ghost,CentOS 7系统安装Ghost博客平台

    一.Ghost介绍 Ghost是一个开源.免费的博客平台,它基于Node.js构建,设计目标是简化在线发布博客的过程. 本文主要讲述怎样在CentOS 7上安装Ghost. 二.安装过程 1.首先确保 ...

  3. ghost博客mysql_centos 上快速搭建ghost博客方法分享

    1. 介绍 Ghost 是一套基于 Node.js 构建的开源博客平台,具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写,目标是取代臃肿的 Wordpress.本篇文章主要是介绍 ...

  4. 轻松搭建博客平台-开源ASP.NET 博客Subtext 的安装

    轻松搭建博客平台-开源ASP.NET 博客Subtext 的安装   开源ASP.NET博客Subtext 目前发布了最新版2.0,是基于.Net Framework 2.0/3.0的开源ASP.NE ...

  5. 从零开始,CentOS6安装ghost博客

    买了个Bandwagon的VPS来科学上网的,寻思着空间还大顺便做个博客呗. 然后就安装了AMH面板,再搞了个wordpress博客玩玩. 接触到Ghost博客的时候,心血来潮想装一个. 然后就试着搞 ...

  6. Ghost 博客系统终极安装教程,装不上来打我!

    先放出Ghost博客项目地址:https://github.com/tryghost/Ghost 前言 Ghost这个博客系统可真是难装,第一次装失败后放弃了一段时间,转而用的JustWriting, ...

  7. Ghost 基于 Node.js 构建的开源博客平台

    介绍: Ghost 是一个开源的博客平台,  可以把他看作 WordPress 的一个挑战者. 现阶段的 WordPress 已经可以明显感觉到有些臃肿不堪, 无论是构架, 设计,  还是实现处处都显 ...

  8. 如何使用 Docker 部署 Ghost 博客

    Ghost是一个流行的内容创建平台,它使用 JavaScript 和 Node.js 编写.开源软件提供了创作.主题.发布和维护自己的博客所需的一切. Ghost 是官方 Ghost(Pro) 托管服 ...

  9. 【Microsoft Azure 的1024种玩法】六十.通过Azure Virtual Machines快速搭建个人Ghost博客系统

    [简介] Ghost 是一套基于Node.js 语言开发构建的开源博客系统,它的整体架构为前端管理系统基于Ember.js, 后端的模板引擎采用的handlebars, 数据库是基于MySQL的,本篇 ...

  10. 手把手教你搭建一个属于自己的Ghost博客

    介绍 Ghost 是基于 Node.js 的开源博客平台,由前 WordPress UI 部门主管 John O'Nolan 和 WordPress 高级工程师(女) Hannah Wolfe 创立, ...

最新文章

  1. 1099 Build A Binary Search Tree (30 分)【难度: 一般 / 知识点: 建立二叉搜索树】
  2. zigbee之SampleApp_ProcessEvent()
  3. 如何优雅地辞退互联网企业的老员工?
  4. 区块链系列教程之:比特币的世界
  5. Install OpenCV-Python in Ubuntu
  6. php直接导出csv,PHP百万级数据导出方案(生成器直接输出单个CSV)
  7. php html登陆逻辑,保持演示文稿(HTML)和逻辑(PHP)分开
  8. Gartner:2020年全球IaaS公有云服务市场增长40.7%
  9. PHP常用的缓存技术汇总
  10. 前端新手入门必读!前端开发线路图分享
  11. 如何集中远程管理各种USB设备,还不了解一下?
  12. root+android+8.0,荣耀8 root两步强刷Android 8.0
  13. Cisco三层交换机的详细配置
  14. 如何玩转阿里巴巴国际站Trueview视频?
  15. 自学编程和计算机科班出身的差别在哪里?
  16. 46家中外知名企业面试题目
  17. 大众创业热度不减,好机友项目强势来袭
  18. 刚刚随便GOOGLE和BAIDU了下PIPO和BLOG
  19. Linux请求调页技术,linux零页技术.doc
  20. git版本更迭的原理

热门文章

  1. 使用Arduino和水流传感器进行流速和流量测量
  2. MATLAB实现控制鼠标移动和点击
  3. matlab对一个数组进行补零,matlab 输出 整数 补0
  4. 三级联动下拉列表的开发过程与范例
  5. [渝粤教育] 西南交通大学 工程流体力学 参考 资料
  6. 营业执照在线生成_平罗县实现个体户营业执照“秒批”
  7. 分享gif录屏与gif图片合成工具
  8. 训练集,验证集,测试集分别是什么
  9. 验证集精度高于训练集精度的原因分析
  10. EasyClick IOS 自动化测试报错