如何在Ubuntu16.04上安装和配置Ghost

来自菜鸟教程
跳转至:导航、​搜索

本教程的先前版本由 Kevin Isaac 编写

介绍

Ghost 是一个轻量级的开源博客平台。 Ghost 是完全可定制的,有许多可用的主题。

在本教程中,您将使用官方的 ghost-cli 安装向导在 Ubuntu 16.04 上设置生产就绪的 Ghost 实例。 这将安装 Ghost,配置 Nginx 以代理对 Ghost 的请求,使用 Let's Encrypt 证书保护它,并将 Ghost 配置为作为系统服务在后台运行。

先决条件

要完成本教程,您需要:

第 1 步 — 安装 Ghost CLI 应用程序

我们将使用官方的 ghost-cli 程序安装 Ghost。 该程序将安装 Ghost,创建 MySQL 用户和数据库,将 Nginx 配置为反向代理,并使用 SSL/TLS 加密保护站点。

首先,使用 npm 下载 ghost-cli

sudo npm i -g ghost-cli

我们将把 Ghost 放在 var/www/ghost 目录中,这是推荐的安装位置。 创建这个目录:

mkdir /var/www/ghost

然后确保您的用户拥有该目录。

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

/var/www/ghost 目录必须对你的用户有完全权限,对其他人有读取和执行权限,所以使用以下命令设置权限:

sudo chmod 775 /var/www/ghost

安装好 CLI 并准备好目录后,我们就可以建立我们的博客了。

第 2 步 — 安装和配置 Ghost

Ghost CLI 应用程序有一个安装向导,它将引导您完成配置工作的 Ghost 博客的所有步骤。

切换到/var/www/ghost/目录。

cd /var/www/ghost/

然后使用 ghost 命令安装 Ghost。 它将配置 Ghost 使用 MySQL 作为默认数据库。 虽然您可以使用其他数据库,但 MySQL 是生产设置的推荐选择。

ghost install

安装程序将首先确保您已安装必要的先决条件,然后下载并安装 Ghost:

Output✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking operating system compatibility
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.22.2
✔ Finishing install process

安装过程完成后,系统会提示您输入博客 URL 以及 MySQL 数据库信息。 在此步骤中提供 root 用户名和密码。 对于数据库名称,您可以使用默认值 ghost_prod

Output? Enter your blog URL: http://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 用户,您应该允许:

Output✔ Configuring Ghost
✔ Setting up instance
Running sudo command: useradd --system --user-group ghost
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。 确认这一点,安装程序将为您的博客创建适当的反向代理服务器块:

Output? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/example.con.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

接下来,系统将提示您设置 SSL 支持。 如果您使用已注册的完全限定域名并且已将 DNS 设置配置为指向服务器的 IP 地址,请按 Y 继续。

Output? Do you wish to set up SSL? Yes

系统将提示您输入电子邮件地址,然后将安装证书。

Output? Enter your email (used for Let's Encrypt notifications) you@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 you@example.com
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
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 服务并使其在启动时启动:

Output? 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,您应该通过按 Y 来允许它:

OutputRunning 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

您的 Ghost 博客现已安装并可以使用。 您可以通过 http://example.com 访问您的博客。 现在让我们创建一个帐户,以便您可以创建您的第一个帖子。

第 3 步 - 创建帐户并配置您的博客

要登录并配置您的博客,请访问 http://example.com/login。 您将看到以下屏幕:

创建您的帐户按钮开始。

您将看到 创建您的帐户 屏幕,它会询问您的博客标题,以及您的姓名、电子邮件地址和密码:

填写详细信息并按最后一步:邀请您的团队按钮。

向导会要求您输入其他协作者的电子邮件地址,但您可以选择屏幕底部的链接 我稍后会执行此操作

然后你会看到一个帖子列表,Ghost 称之为故事:

左侧的菜单可让您创建新故事或管理博客的其他设置。 更多信息请参考【X12X】官方文档【X38X】。

结论

在本教程中,您安装了 Ghost,配置了 Nginx 以代理对 Ghost 的请求,并确保 Ghost 作为系统服务运行。 不过,您可以使用 Ghost 做更多事情。 查看这些教程以了解有关如何使用新博客的更多信息: