如何在 Ubuntu 18.04 上安装 Ghost

2023-10-23

Ghost 是一个构建在 Node.js 平台之上的现代源代码发布平台。它完全可定制且易于使用,使您可以以几乎零的学习曲线发布内容。

在本教程中,我们将向您展示如何使用 Nginx 作为代理、免费的 Let's Encrypt SSL 证书、最新的 LTS 版本的 Node.js 以及 MySQL/MariaDB 作为数据库后端,在 Ubuntu 18.04 服务器上部署安全的 Ghost 博客。

先决条件#

作为学习本教程的先决条件,您将需要:

  • 根据Ghost官方的系统要求,你至少需要1G RAM。如果您的服务器 RAM 小于 1GB,您可以创建一个交换文件 .
  • 指向您的公共服务器IP的域名。在本教程中我们将使用example.com.
  • Nginx 安装如下如何在 Ubuntu 18.04 上安装 Nginx .
  • 防火墙配置如下如何在 Ubuntu 18.04 上使用 UFW 设置防火墙。确保端口80 and 443是开放的。

在继续本教程之前,请确保您以以下身份登录具有 sudo 权限的用户 .

安装 Node.js 和 Yarn#

在撰写本文时,推荐的 Ghost Node.js 版本是 v8 Carbon LTS。我们将从 NodeSource 存储库安装 Node.js。

使用以下命令启用 Node.js v8 的 NodeSource 存储库卷曲命令 :

curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -

通过键入以下内容安装 Node.js:

sudo apt install nodejs
对于其他安装方法,请查看我们的如何在 Ubuntu 18.04 上安装 Node.js guide.

To 安装纱线首先使用以下命令在系统上启用 Yarn 存储库:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

启用存储库后,使用以下命令安装yarn:

sudo apt updatesudo apt-get -o Dpkg::Options::="--force-overwrite" install yarn

安装MySQL#

幽灵支持MySQL , MariaDB和 SQLite 数据库。在本教程中,我们将使用 MySQL,这是在生产模式下运行 Ghost 时推荐的数据库。

使用以下命令安装 MySQL 包:

sudo apt install mysql-server

Run the mysql_secure_installation提高MySQL安装安全性的命令:

sudo mysql_secure_installation

系统会要求您配置VALIDATE PASSWORD PLUGIN用于测试MySQL用户密码的强度。密码验证策略分为低、中、强三个级别。按ENTER如果您不想设置验证密码插件。

在下一个提示中,系统将要求您为 MySQL root 用户设置密码。

设置 root 密码后,脚本还会要求您删除匿名用户、限制 root 用户对本地计算机的访问并删除测试数据库。你应该回答Y(是)对于所有问题。

接下来我们需要更改身份验证方法auth_socket to mysql_native_password,这样Ghost安装程序就可以访问我们的MySQL服务器。为此,请以 root 用户身份登录 MySQL 服务器:

sudo mysql

并运行以下查询,这将在使用时设置 MySQL root 用户的密码mysql_native_password method:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_pasword';FLUSH PRIVILEGES;

确保你改变very_strong_pasword使用强密码。

安装 Ghost-CLI#

我们将使用官方 Ghost CLI 实用程序安装 Ghost。该实用程序允许您通过单个命令安装或更新 Ghost。

Ghost CLI 以 npm 包的形式提供。以下命令将在您的 Ubuntu 系统上全局安装 Ghost CLI:

sudo yarn global add ghost-cli

创建 Ghost 安装位置#

我们将下载并安装 Ghost/var/www/ghost目录,这是推荐的安装位置。

要创建目录类型:

sudo mkdir -p /var/www/ghost

将目录的所有权更改为您的用户:

sudo chown $USER:$USER /var/www/ghost

$USER is an 环境变量保存您的用户名。

设置正确的目录权限 :

sudo chmod 775 /var/www/ghost

安装幽灵#

现在您已经安装了 Ghost CLI 并且所有先决条件都已完成,我们可以开始安装了。

更改为/var/www/ghost目录。

cd /var/www/ghost

开始安装运行ghost install,这将安装并配置 Ghost,将 Nginx 配置为反向代理,并使用免费的 Let's Encrypt SSL 证书保护网站。

ghost install
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
System checks failed with message: 'Linux version is not Ubuntu 16'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using `ghost install local` instead.
? Continue anyway? (y/N) y

安装程序将检查您的系统并打印一些警告,如上所示。类型y继续,安装程序将下载并安装 Ghost:

ℹ Checking operating system compatibility [skipped]
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.24.9
✔ Finishing install process

接下来,系统将提示您设置博客 URL 和 MySQL 信息。提供我们在中设置的 root 用户名和密码Installing MySQL部分并使用默认数据库名称ghost_prod.

? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod

安装程序将创建一个名为的系统用户ghost并会询问你是否想创建一个 Ghost MySQL 用户,输入Yes.

✔ Configuring Ghost
✔ Setting up instance
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? Yes
✔ Setting up "ghost" mysql user

接下来,安装程序会询问您是否要设置 Nginx。通过输入确认Yes.

? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/example.com.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com.conf /etc/nginx/sites-available/example.com.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Running sudo command: nginx -s reload
✔ Setting up Nginx

设置 Nginx 后,安装程序将询问您是否要设置 SSL。通过输入确认Yes配置向导会要求您输入电子邮件地址,然后它将为您的域生成免费的 Let’s Encrypt SSL 证书并配置 Nginx。

? Do you wish to set up SSL? Yes
? Enter your email (used for Let's Encrypt notifications) admin@example.com
Running sudo command: mkdir -p /etc/letsencrypt
Running sudo command: ./acme.sh --install --home /etc/letsencrypt
Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain example.com --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail admin@example.com
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
✔ Creating ssl config file at /var/www/ghost/system/files/example.com-ssl.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com-ssl.conf /etc/nginx/sites-available/example.com-ssl.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com-ssl.conf /etc/nginx/sites-enabled/example.com-ssl.conf
Running sudo command: nginx -s reload
✔ Setting up SSL

接下来,安装程序会询问您是否要设置 systemd 服务。类型Y接受,安装程序将创建一个名为 Ghost_example-com 的新 systemd 服务,并使其能够在启动时启动:

? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_example-com.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_example-com.service /lib/systemd/system/ghost_example-com.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd

最后,安装程序将设置数据库并询问您是否要启动 Ghost,输入Yes.

Running sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? Yes
Running sudo command: systemctl is-active ghost_example-com
✔ Ensuring user is not logged in as ghost user
✔ Checking if logged in user is directory owner
✔ Checking current folder permissions
Running sudo command: systemctl is-active ghost_example-com
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
Running sudo command: systemctl start ghost_example-com
✔ Starting Ghost
Running sudo command: systemctl is-enabled ghost_example-com
Running sudo command: systemctl enable ghost_example-com --quiet
✔ Starting Ghost
You can access your publication at https://example.com
Next, go to your admin interface at https://example.com/ghost/ to complete the setup of your publication

Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config

完成 Ghost 设置#

打开浏览器,转到 Ghost 管理界面:https://example.com/ghost/您将看到以下屏幕:

要开始,请单击Create your account button.

您将被重定向到“创建您的帐户”屏幕,您需要在其中输入您的博客标题以及您的帐户全名、电子邮件地址和密码:

填写详细信息并单击Invite your team button.

在此屏幕上,系统会要求您输入协作者的电子邮件地址。您只需点击I'll do this later, take me to my blog!链接,您将被重定向到 Ghost 仪表板:

从这里,您可以创建新帖子、添加用户和更改 Ghosts 配置。

结论#

在本教程中,您学习了如何安装生产就绪的 Ghost 实例。

您现在应该访问幽灵帮助页面并了解有关如何管理 Ghost 安装的更多信息。您还可以访问幽灵市场并发现幽灵主题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 18.04 上安装 Ghost 的相关文章

随机推荐

  • 如何在 MySQL 中创建管理员用户

    在 MySQL 中管理数据库通常需要使用特权用户或超级管理员用户 他们拥有读取 写入 更新和管理数据库的所有权限 在 MySQL 中 这通常是 root 用户 但建议创建单独的超级管理员用户以实现更好的安全管理 本文将指导您如何在 MySQ
  • 如何在 Fedora 36/35/34 上安装 TeamViewer

    团队查看器是一款功能强大的远程桌面和文件共享应用程序 适用于大多数操作系统和移动设备 为了将 TeamViewer 的使用商业化 您必须购买许可证 您可以免费使用它 仅供个人使用 Teamviewer 的 RPM 包由官方团队构建 可以安装
  • 如何更改 PHP 会话超时

    作为 Web 开发人员 了解 PHP 会话超时对于构建安全可靠的 Web 应用程序至关重要 PHP 会话是一种跨多个页面存储用户信息的方式 会话超时是指会话在过期之前保持活动状态的持续时间 在本分步指南中 我们将引导您完成更改 PHP 会话
  • 如何在 Ubuntu、Debian 和 LinuxMint 上安装 Python 3.7

    在撰写本文时 Python 3 7 系列的最新稳定版本已可供安装 本文将帮助您在 Ubuntu 和 LinuxMint 操作系统上安装 Python 3 7 9 你可以拜访here阅读有关 Python 版本的更多信息 先决条件 保持软件包
  • 如何在 Ubuntu 16.04、14.04 上安装 Nginx、PHP 7 和 MySQL

    PHP 7 2 的最新主要版本已经发布 在速度和安全性方面进行了大量优化 所以你应该尝试这个版本来进行开发 本教程将帮助您在 Ubuntu 17 10 16 04 和 14 04 LTS 版本上安装 Nginx PHP 7 2 和 MySQ
  • 了解 Terraform 语法和配置文件

    Terraform 由 HashiCorp 开发 是一款因其在基础设施即代码 IaC 方面的强大功能而广为人知的工具 本综合指南旨在让您深入了解 Terraform 语法 特别关注配置文件 了解 Terraform 语法 Terraform
  • Fedora 26 发布,新功能及升级步骤

    Fedora 26 发布 最终的 Fedora 26 已发布于2017 年 7 月 11 日 Fedora 26有各种软件升级 安全补丁 该版本将与 GENOME 3 24 一起发布 您可以从以下位置下载 Fedora 26 预发行版 Be
  • 如何重命名 SQL Server 数据库

    Microsoft SQL Server 为您提供了多种重命名数据库的方法 您可以使用 SQL Server Management Studio 或运行 SQL 查询来重命名数据库 在重命名数据库之前 请记住 它可能会中断使用当前数据库名称
  • 如何使用SCP命令安全传输文件

    SCP 安全复制 是一个命令行实用程序 允许您在两个位置之间安全地复制文件和目录 With scp 您可以复制文件或目录 从本地系统到远程系统 从远程系统到本地系统 在本地系统的两个远程系统之间 当传输数据时scp 文件和密码都经过加密 因
  • 如何在 CentOS 7 上安装 VMware Workstation Player

    VMware是一个成熟稳定的虚拟化解决方案 允许您在一台机器上运行多个独立的操作系统 您可以创建自己的虚拟机并评估许多软件供应商作为虚拟设备分发的软件 这些软件可从VMware 解决方案交流 本教程将指导您完成在 CentOS 7 上安装
  • 如何在 Ubuntu 18.04 上安装 Java

    Java 是世界上最流行的编程语言之一 用于构建不同类型的跨平台应用程序 本教程介绍如何在 Ubuntu 18 04 上安装各种版本的 OpenJDK 以及 Oracle Java 相同的说明适用于 Ubuntu 16 04 和任何基于 U
  • 如何在 Ubuntu 18.04 上安装 Apache Cassandra

    Apache Cassandra 是一个免费的开源 NoSQL 数据库 不存在单点故障 它提供线性可扩展性和高可用性 而不会影响性能 Apache Cassandra 被许多组织使用 包括 Apple NetFlix eBay 和 Easo
  • Linux 中的超时命令

    timeout是一个命令行实用程序 它运行指定的命令 并在给定时间段后终止该命令 如果该命令仍在运行 换句话说 timeout允许您运行有时间限制的命令 这timeout命令是 GNU 核心实用程序包的一部分 几乎所有 Linux 发行版上
  • 如何在 CentOS 7 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 在大多数情况下 当在虚拟机上运行 CentOS 时 不存在交换
  • 如何在 Ubuntu 18.04 上设置 Apache 虚拟主机

    在本教程中 我们将提供有关如何在 Ubuntu 18 04 上设置 Apache 虚拟主机的分步说明 Apache 虚拟主机允许您在一台计算机上运行多个网站 使用虚拟主机 您可以指定站点文档根目录 包含网站文件的目录 为每个站点创建单独的安
  • 如何在 Ubuntu 20.04 上安装和配置 VNC

    虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计算机 它是 Microsoft 的开源替代品远程桌面协议 RDP 本文介绍如何在 Ubuntu 20 04 上安装和配置 VNC 服务器 我们还将向您展示如何
  • 如何在 Ubuntu 18.04 上禁用防火墙

    Ubuntu 附带了一个名为 UFW 简单防火墙 的防火墙配置工具 UFW 是一个用户友好的前端 用于管理 iptables 防火墙规则 其主要目标是使管理防火墙规则更容易 或者顾名思义 不复杂 强烈建议保持防火墙启用 但是 在某些情况下
  • 如何在 Debian 9 上安装 Jenkins

    Jenkins是一个开源自动化服务器 提供了一种设置持续集成和持续交付 CI CD 管道的简单方法 持续集成 CI 是一种 DevOps 实践 团队成员定期将代码更改提交到版本控制存储库 然后运行自动化构建和测试 持续交付 CD 是自动构建
  • 如何在 Debian 10 上配置 MySQL (MariaDB) 主从复制

    MySQL 复制是将数据从一台数据库服务器 主服务器 复制到一台或多台服务器 从服务器 的过程 MySQL 支持多种复制拓扑 其中主 从拓扑是最著名的拓扑之一 其中一台数据库服务器充当主服务器 而一台或多台服务器充当从服务器 默认情况下 复
  • 如何在 Ubuntu 18.04 上安装 Ghost

    Ghost 是一个构建在 Node js 平台之上的现代源代码发布平台 它完全可定制且易于使用 使您可以以几乎零的学习曲线发布内容 在本教程中 我们将向您展示如何使用 Nginx 作为代理 免费的 Let s Encrypt SSL 证书