概述
这是使用我们推荐的 Ubuntu 20.04 或 22.04 堆栈自托管 Ghost 的官方指南。如果您愿意安装、维护和更新自己的软件,那么这里就是您的最佳选择。在本指南结束时,您将使用 MySQL 在生产环境中运行完全配置的 Ghost 安装。
此安装不适合本地使用或对 core 有贡献。
先决条件
官方推荐的生产安装需要以下堆栈:
- Ubuntu 20.04 或 Ubuntu 22.04
- NGINX(SSL 最低为 1.9.5)
- 受支持的 Node.js 版本
- MySQL 8 版本
- Systemd 系统
- 具有至少 1GB 内存的服务器
- 已注册的域名
在开始之前,您应该从您的域设置一个有效的 DNS A 记录,指向服务器的 IP 地址。这必须提前完成,以便可以在设置期间配置 SSL。
服务器设置
本指南的这一部分将确保满足安装 Ghost-CLI 的所有先决条件。
创建新用户
打开您的终端并以 root 用户身份登录您的新服务器:
# Login via SSH
ssh root@your_server_ip
# Create a new user and follow prompts
adduser <user>
注意:使用用户名会导致与 Ghost-CLI 冲突,因此使用备用名称非常重要。
ghost
# Add user to superuser group to unlock admin privileges
usermod -aG sudo <user>
# Then log in as the new user
su - <user>
更新包
确保软件包列表和已安装的软件包是最新的。
# Update package lists
sudo apt-get update
# Update installed packages
sudo apt-get upgrade
按照任何提示输入您刚刚在上一步中创建的密码。
安装 NGINX
Ghost 使用 NGINX 服务器,SSL 配置需要 NGINX 1.9.5 或更高版本。
# Install NGINX
sudo apt-get install nginx
如果已激活,则防火墙允许 HTTP 和 HTTPS 连接。打开防火墙:ufw
sudo ufw allow 'Nginx Full'
安装 MySQL
接下来,您需要安装 MySQL 以用作生产数据库。
# Install MySQL
sudo apt-get install mysql-server
在较新版本的 Ubuntu 上,默认情况下,安装 MySQL 时创建的 root 用户将配置为使用基于套接字的身份验证,这意味着只有 root Unix 用户才能进行身份验证。Ghost 不支持这种身份验证,因此您必须将 root MySQL 用户更改为具有密码。运行以下命令以使 root 用户具有密码:
# Enter mysql
sudo mysql
# Update permissions
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '<your-new-root-password>';
# Reread permissions
FLUSH PRIVILEGES;
# exit mysql
exit
安装 Node.js
您需要按照下述方式在系统范围内安装受支持的 Node 版本。如果您有不同的设置,您可能会遇到问题。
# Download and import the Nodesource GPG key
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
# Create deb repository
NODE_MAJOR=18 # Use a supported version
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
# Run update and install
sudo apt-get update
sudo apt-get install nodejs -y
安装 Ghost-CLI
Ghost-CLI 是一个命令行工具,可帮助您快速轻松地安装和配置 Ghost 以供使用。可以使用 或 安装 npm 模块。npm
yarn
sudo npm install ghost-cli@latest -g
安装后,您始终可以运行以查看可用命令的列表。ghost help
安装 Ghost
正确设置并安装服务器后,您就可以安装 Ghost 本身。以下步骤是建议的设置。如果您需要更精细的控制,CLI 提供了一些标志和选项,允许您分解和自定义安装步骤。ghost-cli
创建目录
Ghost 必须安装在自己的目录中,并具有适当的所有者和权限。
# Create directory: Change `sitename` to whatever you like
sudo mkdir -p /var/www/sitename
# Set directory owner: Replace <user> with the name of your user
sudo chown <user>:<user> /var/www/sitename
# Set the correct permissions
sudo chmod 775 /var/www/sitename
# Then navigate into it
cd /var/www/sitename
运行安装过程
现在我们使用最后一个命令安装 Ghost。
ghost install
安装问题
在安装过程中,CLI 将询问一些问题来配置您的站点。
博客 URL
输入您的出版物将可用的确切 URL,并包括 HTTP 或 HTTPS 的协议。例如。如果您使用 HTTPS,Ghost-CLI 将为您设置 SSL。使用 IP 地址会导致错误。https://example.com
MySQL 主机名
这决定了可以从何处访问 MySQL 数据库。当 MySQL 安装在同一服务器上时,请使用 (按下可使用默认值)。如果 MySQL 安装在另一台服务器上,请手动输入名称。localhost
Enter
MySQL 用户名/密码
如果您已经有一个现有的 MySQL 数据库,请输入 username.否则,请输入 。然后为您的用户提供密码。root
Ghost 数据库名称
输入数据库的名称。它将自动为您设置,除非您使用的是非 root MySQL 用户/密码。在这种情况下,数据库必须已存在并具有正确的权限。
设置 ghost MySQL 用户?(推荐)
如果您提供了根 MySQL 用户,则 Ghost-CLI 可以创建自定义 MySQL 用户,该用户只能访问/编辑您的新 Ghost 数据库,而不能访问/编辑其他数据库。
设置 NGINX?(推荐)
自动设置 NGINX,使您的网站能够被外界查看。手动设置 NGINX 是可能的,但你为什么要选择艰难的生活呢?
设置 SSL?(推荐)
如果您使用了博客 URL 并且已经将您的域指向了正确的位置,Ghost-CLI 可以使用 Let's Encrypt 自动为您设置 SSL。或者,您可以稍后通过随时运行来执行此操作。https
ghost setup ssl
SSL 证书设置需要一个电子邮件地址,以便在证书出现任何问题时(包括在续订期间)随时通知您。
设置 systemd?(推荐)
systemd
是推荐的进程管理工具,可保持 Ghost 平稳运行。我们建议选择,但可以设置自己的流程管理。yes
启动 Ghost?
选择将运行 Ghost,并使您的网站正常工作。yes
未来维护
正确设置 Ghost 后,请务必对其进行正确维护和更新。幸运的是,使用 Ghost-CLI 相对容易做到这一点。Run 获取可用命令列表,或浏览完整的 Ghost-CLI 文档。ghost help
如果安装失败该怎么办
如果安装出现严重错误,请使用 将其删除并重试。这比删除文件夹更可取,以确保不会留下任何项目。ghost uninstall
如果安装中断或连接丢失,请使用 重新启动配置过程。ghost setup
有关故障排除和错误,请使用站点搜索和常见问题解答部分查找有关常见错误消息的信息。
下一步是什么?
一切就绪!现在您可以开始自定义您的网站。查看我们的一系列教程或 Ghost API 文档,具体取决于您接下来想参加此“自选冒险”体验的哪个页面。