一键安装部署,在 Ubuntu 服务器上快速搭建基于 Ghost CMS的网站

我们在上一篇内容中讲过,如何使用 Helm 在 Kubernetes 集群上安装 WordPress,创建高可用性网站。而这次我们将基于另一个流行的内容管理系统 Ghost CMS 在 DigitalOcean 云主机进行建站。

Ghost 也是开源的内容管理系统(CMS),用于发布博客和其他内容。它基于 Node.js 技术栈构建,可高度定制。与其他管理系统一样,Ghost 附带预建模板,你可以在创建博客时使用或扩展。本教程将指导你使用 DigitalOcean Ghost 1-Click App启动预装了 Ghost 的 DigitalOcean Droplet。你可以创建一个免费的 DigitalOcean 账户来使用可用于一键启动的Marketplace App。安装 Ghost 1-Click 应用程序后,你就可以开始通过 Ghost CMS 创建帖子了。

一键部署

Ghost 1-Click 应用中预装了以下软件包:

  • Ghost
  • Nginx 1.18.0
  • MySQL Server 8.0.29
  • Node.js 16.x

截至本文撰写之时,该一键应用中包含了最新版本的 Ghost 5.33.3 ,并可运行在 Ubuntu 22.04 服务器上。

前提条件

要在浏览器上运行 Ghost 1-Click,你需要一个域名。你可以使用 DNS 快速入门指南,了解如何使用 DigitalOcean DNS 设置域名。

第1步 - 创建 Ghost Droplet

Ghost 1-Click Droplet 可在DigitalOcean的MarketPlace上看到。要开始使用,请选择“创建 Ghost Droplet”按钮:

图:进入 Ghost 1-Click 登陆页面后,请点击创建 Droplet 的按钮。

你的 DigitalOcean 控制面板将在“ Choose an image”部分列出 Ghost 1-Click Droplet 作为你的选择。如果尚未选择,可以使用关键字搜索框查找:

图:你的 DigitalOcean 控制面板中已选择 Ghost 镜像。

如果尚未选择 Ghost 镜像,请使用搜索框搜索 Ghost。

正确选择 Ghost 图像后,你可以接受默认设置,也可以根据使用情况调整设置。我们通常建议进行以下更改:

  1. 选择数据中心:为避免潜在的延迟,建议选择离你的用户群最近的数据中心区域。在某些地区,DigitalOcean有不止一个数据中心。这些相同区域的数据中心之间没有区别(例如,SFO3 和 SFO2)。
  2. 选择规划:选择适合你的计划。请记住,你可以根据需要调整 Droplet 的大小。对于 Ghost CMS,DigitalOcean建议使用至少有 2 个 CPU 内核和 4GB 内存的 Droplet。
  3. 选择身份验证方法:建议使用 SSH 密钥选项,而不是 Droplet 的密码。使用 SSH 密钥进行身份验证更安全。
  4. 选择附加选项:为你的 Droplet 添加改进的指标、监控和警报,可帮助你随时间跟踪 Droplet 的资源使用情况。你可能还需要考虑启用自动备份。你可以稍后返回,在已创建的 Droplet 上启用备份功能。

  1. 选择主机名

给你的 Droplet 起一个识别名称。 sammy-Ghost使用在这个案例:

  • 输入名称并作出选择后,按下“Create Droplet”按钮。您的 Droplet 将开始安装过程,可能需要一些时间才能完成。完成后,你将收到一个 IP 地址。

  • 按下“Get started ”链接即可访问“一键市场”应用程序的附加资源。其中包括应用程序概述、进一步的安装设置以及社区网站上相关教程的链接。您还可以通过查看 Ghost 官方文档获得支持。

完成所有选择后,就可以在终端中访问新的 Ghost Droplet,继续安装过程。

第 2 步 - 通过 SSH 访问 Droplet 以进行配置

启动 Ghost Droplet 后,通过 SSH 与之连接。如果您以前没有使用过 SSH 或 PuTTY 等终端程序,请查看如何使用 SSH 连接到 Droplet。准备就绪后,在计算机上打开终端,使用以下命令通过 SSH 以根用户身份登录,将 IP 地址替换为 Droplet 的 IP 地址:

ssh root@your_server_ip

当终端提示您继续连接时,输入 yes。Ghost 将开始安装。

第 3 步 - 完成 Droplet 上的 Ghost 安装

在设置向导启动后,会提示您输入域名和电子邮件地址。按下 ENTER 键继续安装:

. . .
Ghost will prompt you for two details:1. Your domain- Add an A Record -> your_IP_address & ensure the DNS has fully propagated- Or alternatively enter http://your_IP_address
1. Your email address (only used for SSL)Press enter when you're ready to get started!
. . .

在此安装步骤中,你将收到以下输出。请注意,完成此过程可能需要几分钟:

Output
. . .
✔ Checking system Node.js version - found v16.17.0
✔ Checking current folder permissions
✔ Checking memory availability
✔ Checking free space
✔ Checking for latest Ghost version
✔ Setting up install directory
☲ Downloading and installing Ghost v5.33.3 > Installing dependencies > [4/5] Linking dependencies...
. . .

安装完成后,输入您的域名:

. . .
✔ Finishing install process
? Enter your blog URL: your_domain_name

然后,输入电子邮件地址以设置 LetsEncrypt SSL 证书:

. . .
✔ Configuring Ghost
✔ Setting up instance
+ sudo useradd --system --user-group ghost
+ sudo chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
✔ Setting up "ghost" mysql user
+ sudo mv /tmp/your_domain/your_domain.conf /etc/nginx/sites-available/your_domain.conf
+ sudo ln -sf /etc/nginx/sites-available/your_domainconf /etc/nginx/sites-enabled/your_domain.conf
+ sudo nginx -s reload
✔ Setting up Nginx
? Enter your email (For SSL Certificate) your_email_address

稍等片刻,你将看到以下输出:

. . .
✔ Starting GhostGhost uses direct mail by default. To set up an alternative email method read our docs at https://ghost.org/docs/config/#mail------------------------------------------------------------------------------Ghost was installed successfully! To complete setup of your publication, visit: https://your_domain/ghost/------------------------------------------------------------------------------For any further commands, please switch to the ghost-mgr user to manage Ghost.sudo -i -u ghost-mgr------------------------------------------------------------------------------
------------

获得证书后,导航到 https://your_domain/ghost/ 以访问你的 Ghost 服务器。生成新实例的登录页面可能需要一点时间:

在必填字段中输入你的信息,然后点击“Create account ”按钮。你将进入 Ghost 管理面板:

现在您可以访问管理面板,您可以创建您的第一篇帖子。按 左侧导航面板上的“撰写您的第一篇帖子”按钮:

你将进入一个空白页面来撰写你的帖子。输入帖子标题和内容:

输入内容后,你可以通过点击右上角的“Preview”按钮来测试用户将如何查看帖子

通过点击左上角的“Editor”按钮退出预览。

完成对帖子的编辑后,点击“Publish”。此时会出现一个包含几个下拉菜单选项的提示。将选项保留为默认值以立即发布帖子:

你将收到另一个确认发布的提示。立即按“Publish post, right now”继续:

现在,您的网站上已经运行了 Ghost 服务器、管理面板,并发布了一篇新的博客文章。

结论

现在,你已经建立了自己的 Ghost 服务器,可以继续尝试使用各种选项,根据自己的需要自定义服务器的外观和设置。如果您想了解更多有关 Ghost 发布的入门知识,可以查看他们的资源库。你还可以参考 Ghost 开发人员文档,深入了解 Ghost 技术和 API 功能。

要了解更多有关创建自己的模板以及使用 Next.js 和 TailwindCSS 进一步定制的信息,请查看我们的《如何在 DigitalOcean 上使用 Ghost 和 Next.js 创建博客》教程。

感谢你与 DigitalOcean 社区一起学习。请查看我们的计算、存储、网络和托管数据库产品,进一步了解我们提供的服务。如果中国区用户需要了解产品、获取技术支持,可以联系 DigitalOcean 中国区独家战略合作伙伴卓普云。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/40956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#知识|项目的实施过程及通用三级架构的搭建笔记

哈喽,你好啊,我是雷工! 01 项目需求分析 根据与需求方沟通,分析需求,一般都有需求分析师来进行项目需求收集与分析。 根据需求文档进行项目功能设计。 02 框架的选择 ①小项目可以根据需求选择两层或三层结构。 ②中型大型项目,至少需要三层架构和其他架构的组合。 03 框…

Spring学习03-[Spring容器核心技术IOC学习进阶]

IOC学习进阶 Order使用Order改变注入顺序实现Ordered接口,重写getOrder方法来改变自动注入顺序 DependsOn使用 Lazy全局设置-设置所有bean启动时候懒加载 Scopebean是单例的,会不会有线程安全问题 Order 可以改变自动注入的顺序 比如有个animal的接口&a…

NEMU模拟器的gdb调试和指令调试

NEMU模拟器的gdb调试和指令调试 1 通过gdb调试NEMU1.1 编译NEMU1.2 gdb调试 2 通过NEMU调试指令 关于如何编译NEMU,以及编译MySBIBenOS固件,运行等前置知识,可参考 《NEMU模拟器源码编译与使用》。 1 通过gdb调试NEMU 1.1 编译NEMU 当我使…

E2.【C语言】练习:static部分

#include <stdio.h> int sum(int a) {int c 0;static int b 3;c 1;b 2;return (a b c); } int main() {int i;int a 2;for (i 0; i < 5;i){printf("%d ", sum(a));} } 求执行结果 c是auto类变量(普通的局部变量)&#xff0c;自动产生&#xff0c…

Windows 11 操作无法完成(错误 0x00000709)。

这里写自定义目录标题 环境错误一错误二错误三重点 环境 共享端&#xff1a;Win11 专业版 23H2 本地端&#xff1a;Win11 专业版 23H2 错误一 操作无法完成(错误 0x00000709)。 再次检查打印机名称&#xff0c;并确保打印机已连接到网络。 解决&#xff1a; 组策略设置 打开…

sql查询 只取某字段重复数据中的一条

一. 前提条件 某表的主键由两个字段A、B构成&#xff08;或者更多&#xff09;&#xff0c;任何其中一个字段都可能具有重复的数据。 需要只取字段A所有重复数据中的一条构成查询结果&#xff0c;也就是字段A取到所有的可能取值且无重复。 二. 方法一&#xff08;where ... …

Appium环境搭建,华为nova8鸿蒙系统(包括环境安装,环境配置)(一)

1.安装代码工具包 appium python client pip install appium-python-client 2.安装JDK 参考链接: ant+jmeter+jenkins从0实现持续集成(Windows)-CSDN博客 3.下载并安卓SDK 下载地址:AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载…

香橙派AIpro初体验:搭建无线随身NAS

文章目录 引言2. 香橙派 AIPro概述3. 开发准备3.0 烧录镜像3.1 需要准备的硬件3.2 需要准备的软件3.3 启动并连接香橙派 AIPro3.3.1 初始化启动香橙派 AIPro3.3.2 无线连接香橙派 AIPro3.3.3.3 VNC连接香橙派 AIPro 3.4 设置固定ip3.4.1 设置开机自动连接WIFI3.4.1 设置香橙派 …

松下Panasonic机器人维修故障原因

松下机器人伺服电机是许多工业自动化设备的关键组成部分。了解如何进行Panasonic工业机械臂电机维修&#xff0c;对于确保设备正常运行至关重要。 【松下焊接机器人维修案例】【松下机器人维修故障排查】 一、常见松下工业机械手伺服电机故障及原因 1. 过热&#xff1a;过热可…

【BUUCTF-PWN】6-jarvisoj_level0

64位&#xff0c;开启了NX保护 运行效果如下&#xff1a; main函数&#xff1a; vulnerable_function()函数 buf变量长度为128&#xff0c;但是read可以读入0x200长度的字符&#xff0c;存在栈溢出&#xff0c;需要覆盖的长度为0x808 寻找后门函数 这里可以直接用栈…

计算机的错误计算(二十一)

摘要 两个不相等数相减&#xff0c;差为0&#xff1a; ? 在计算机的错误计算&#xff08;十九&#xff09;中&#xff0c;高中生小明发现本应为0的算式结果不为0. 今天他又发现对本不为0的算式&#xff0c;计算机的输出为0. 在 Python 中计算 &#xff1a; 则输出为0. 若用 C…

Android-卷积神经网络(Convolutional Neural Network, CNN)

一个复杂且在Android开发中常见的算法是图像处理中的卷积神经网络(Convolutional Neural Network, CNN)。CNN被广泛用于图像识别、物体检测和图像分割等任务,其复杂性在于需要处理大量的图像数据、复杂的神经网络结构和高效的计算。 1. 卷积操作(Convolution) 数学原理:…

CSS学习(三大特性 盒子模型)

目录 Emmet语法 1.快速生成HTML结构语法 2.快速生成CSS样式语法 CSS的复合选择器 后代选择器 子选择器 并集选择器 伪类选择器 链接伪类选择器 focus伪类选择器 CSS的三大特性 层叠性 继承性 优先级 CSS盒子模型 组成 边框 边框 内边距 外边距 块级盒子水…

7_1_SVPWM概述

1、SPWM 正弦脉宽调制法&#xff08;SPWM&#xff09;是将每一正弦周期内的多个脉冲作自然或规则的宽度调制&#xff0c;使其依次调制出相当于正弦函数值的相位角和面积等效于正弦波的脉冲序列&#xff0c;形成等幅不等宽的正弦化电流输出。 通过调整占空比使等效电流近似为正弦…

classin视频下载提取为mp4教程

最近在上classin网课&#xff0c;无奈网课视频要过期了&#xff0c;所以想保存下来&#xff01; 下面介绍提取的教程 我们可以绕过最开始的握手&#xff0c;就是先播放了一段时间后&#xff0c;再打开抓包&#xff0c;回到Classin播放后&#xff0c;就可以获得网课链接了 直接打…

软考-系统架构设计师[九年]上岸感想

2016年就开始参系统架构设计师的考试了&#xff0c;经历七次考试终于成功上岸&#xff0c;分享下自己这么多次考试失败的经验&#xff0c;希望大家可以少踩坑&#xff0c;一次通过考试 重点 如果你不想继续读下去&#xff0c;看完这段就行。 1.一定要知道最新的考试范围&…

Java通过GeoLite2-City.mmdb 进行IP信息查询地理定位和经纬度筛选。

引入依赖 <dependency><groupId>com.maxmind.geoip2</groupId><artifactId>geoip2</artifactId><version>4.2.0</version> </dependency>下载数据文件&#xff1a;https://download.lin2ur.cn/GeoLite2/ package com.cqclo…

【spring MVC的执行流程】

SpringMVC可以说是Servlet的封装&#xff0c;屏蔽了Servlet的很多细节&#xff0c;比如Servlet再获取参数的时候需要不停地getParameter,现在只要在SpringMVC方法定义对应的JavaBean&#xff0c;只要属性和参数名一致&#xff0c;SpringMVC就可以帮我们实现将参数封装到JavaBea…

【Linux】目录和文件的权限意义

现在我们知道了Linux系统内文件的三种身份&#xff08;拥有者、用户组与其他人&#xff09;&#xff0c;知道每种身份都有三种权限&#xff08;rwx&#xff09;&#xff0c;也知道能够使用chown、chgrp、chmod修改这些权限与属性&#xff0c;当然&#xff0c;利用IS-l去查看文件…

wordpress企业网站模板免费下载

大气上档次的wordpress企业模板&#xff0c;可以直接免费下载&#xff0c;连注册都不需要&#xff0c;网盘就可以直接下载&#xff0c;是不是嘎嘎给力呢 演示 https://www.jianzhanpress.com/?p5857 下载 链接: https://pan.baidu.com/s/1et7uMYd6--NJEWx-srMG1Q 提取码:…