如何在Ubuntu16.04上安装和配置Ghost
本教程的先前版本由 Kevin Isaac 编写
介绍
Ghost 是一个轻量级的开源博客平台。 Ghost 是完全可定制的,有许多可用的主题。
在本教程中,您将使用官方的 ghost-cli
安装向导在 Ubuntu 16.04 上设置生产就绪的 Ghost 实例。 这将安装 Ghost,配置 Nginx 以代理对 Ghost 的请求,使用 Let's Encrypt 证书保护它,并将 Ghost 配置为作为系统服务在后台运行。
先决条件
要完成本教程,您需要:
- 按照 Ubuntu 16.04 初始服务器设置指南 设置一台 1GB Ubuntu 16.04 服务器,包括 sudo 非 root 用户和防火墙。
- 使用官方 PPA 安装的 Node.js,如 如何在 Ubuntu 16.04 上安装 Node.js 中所述。
- 在你的服务器上安装了 Nginx,如如何在 Ubuntu 16.04 上安装 Nginx。
- MySQL 按照 How to Install MySQL on Ubuntu 16.04 安装。
- (可选)配置为指向您的服务器的域名。 您可以按照 如何使用 DigitalOcean 教程设置主机名来学习如何将域指向 DigitalOcean Droplets。 您将需要它来通过 Ghost 的安装向导启用 Let's Encrypt 的 SSL 支持。
第 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 做更多事情。 查看这些教程以了解有关如何使用新博客的更多信息:
- 如何从命令行配置和维护Ghost。
- 如何在 Ghost 中更改主题和调整设置。