百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

Ghost 安装和配置 ghost怎么安装

qiyuwang 2024-10-31 15:54 13 浏览 0 评论

本文所述安装和配置均在 Ubuntu 16.04 系统上,假设你已经拥有一个服务器和一个域名。

安装

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

1. 在系统上创建一个新用户。一般安装 Ghost 会使用一个新用户,当然这也不是必须的。创建用户可以使用 useradd 和 adduser 命令,然后使用 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](https://www.mathjax.org/) 来渲染,同样将如下代码放入 Code injection 即可:

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

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

加密博客站点

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

邮箱配置

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

Reference

  • [Adding code highlighting to Ghost blog](https://www.grzegorowski.com/adding-code-highlighting-to-ghost-blog)
  • [Prism](https://prismjs.com/#basic-usage)
  • [How to Add Syntax Highlighting to Ghost | Biron Themes](https://bironthemes.com/blog/how-to-add-syntax-highlighting-to-ghost/)
  • [prism - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!](https://cdnjs.com/libraries/prism)
  • [MathJax | Beautiful math in all browsers.](https://www.mathjax.org/#gettingstarted)

相关推荐

PayPal严重漏洞可通过不安全的JAVA反序列化对象

在2015年12月,我在PayPal商业网站(manager.paypal.com)中发现了一个严重的漏洞,这个漏洞的存在,使得我可以通过不安全的JAVA反序列化对象,在PayPal的网站服务器上远程...

提醒:Apache Dubbo存在反序列化漏洞

背景:近日监测到ApacheDubbo存在反序列化漏洞(CVE-2019-17564),此漏洞可导致远程代码执行。ApacheDubbo是一款应用广泛的高性能轻量级的JavaRPC分布式服务框架...

【预警通报】关于WebLogicT3存在反序列化高危漏洞的预警通报

近日,我中心技术支撑单位监测到WebLogicT3存在反序列化0day高危漏洞,攻击者可利用T3协议进行反序列化漏洞实现远程代码执行。...

Apache dubbo 反序列化漏洞(CVE-2023-23638)分析及利用探索

在对Apachedubbo的CVE-2023-23638漏洞分析的过程中,通过对师傅们对这个漏洞的学习和整理,再结合了一些新学的技巧运用,从而把这个漏洞的利用向前推了一步。整个过程中的研究思路以及...

案例|WebLogic反序列化漏洞攻击分析

目前网络攻击种类越来越多,黑客的攻击手段也变得层出不穷,常规的防护手段通常是对特征进行识别,一旦黑客进行绕过等操作,安全设备很难发现及防御。通过科来网络回溯分析系统可以全景还原各类异常网络行为,记录所...

【预警通报】关于ApacheOFBizRMI反序列化远程代码 执行高危漏洞的预警通报

近日,我中心技术支撑单位监测发现ApacheOFBiz官方发布安全更新,修复了一处远程代码执行漏洞。成功利用该漏洞的攻击者可造成任意代码执行,控制服务器。该漏洞编号:CVE-2021-26295,安...

关于OracleWebLogic wls9-async组件存在反序列化远程命令执行高危漏洞的预警通报

近日,国家信息安全漏洞共享平台(CNVD)公布了OracleWebLogicwls9-async反序列化远程命令执行漏洞。攻击者利用该漏洞,可在未授权的情况下远程执行命令。该漏洞安全级别为“高危”。现...

Rust语言从入门到精通系列 - Serde序列化/反序列化模块入门指北

Serde是一个用于序列化和反序列化Rust数据结构的库。它支持JSON、BSON、YAML等多种格式,并且可以自定义序列化和反序列化方式。Serde的特点是代码简洁、易于使用、性能高效。...

Java反序列化漏洞详解(java反序列化漏洞利用)

Java反序列化漏洞从爆出到现在快2个月了,已有白帽子实现了jenkins,weblogic,jboss等的代码执行利用工具。本文对于Java反序列化的漏洞简述后,并对于Java反序列化的Poc进行详...

关于Oracle WebLogic Server存在反序列化远程代码执行漏洞的安全公告

安全公告编号:CNTA-2018-00222018年7月18日,国家信息安全漏洞共享平台(CNVD)收录了OracleWebLogicServer反序列化远程代码执行漏洞(CNVD-2018-13...

CVE-2020-9484 Apache Tomcat反序列化漏洞浅析

本文是i春秋论坛作家「Ybwh」表哥原创的一篇技术文章,浅析CVE-2020-9484ApacheTomcat反序列化漏洞。01漏洞概述这次是因为错误配置和org.apache.catalina....

告别脚本小子系列丨JAVA安全(8)——反序列化利用链(下)

0x01前言...

关于WebLogic反序列化高危漏洞的紧急预警通报

近日,WebLogic官方发布WebLogic反序列化漏洞的紧急预警通告,利用该漏洞可造成远程代码执行并直接控制Weblogic服务器,危害极大。该漏洞编号为:CVE-2019-2890,安全级别为“...

高危!Fastjson反序列化漏洞风险通告

漏洞描述...

学习Vulhub的Java RMI Registry 反序列化漏洞

这个实验,我们先通过dnslog演示命令执行,然后通过反弹shell获得root权限。JavaRemoteMethodInvocation用于在Java中进行远程调用。RMI存在远程bind的...

取消回复欢迎 发表评论: