- 推荐方式:使用 Ghost-CLI 安装(适用于开发、测试、个人博客)
这是最简单、最快捷的方式,官方推荐,它会在你的服务器上自动安装 Nginx、MySQL、Node.js 和 Ghost 本身。
(图片来源网络,侵删) - 高级方式:手动安装(适用于生产环境,需要更多自定义)
适合有一定 Linux 基础的用户,可以让你对服务器的每一个组件都有完全的控制权。
第一部分:准备工作(两种方式通用)
在开始安装之前,你需要准备以下几样东西:
-
一台云服务器(VPS)
- 推荐系统:Ubuntu 22.04 LTS 或 Debian 11,Ghost 官方主要支持这两个系统。
- 最低配置:
- CPU: 1 核
- 内存: 1 GB (推荐 2 GB 或以上,特别是如果你流量较大)
- 硬盘: 20 GB SSD
- 推荐服务商:DigitalOcean, Vultr, Linode, 阿里云, 腾讯云等。
-
一个域名
(图片来源网络,侵删)www.yourblog.com,你需要将这个域名的 A 记录指向你服务器的公网 IP 地址。
-
连接服务器的工具
- 推荐:PuTTY (Windows) 或 Terminal (macOS/Linux)。
-
基本的服务器操作知识
- 如何通过 SSH 登录服务器。
- 如何使用基本的 Linux 命令(如
cd,ls,mkdir,apt等)。
第二部分:推荐方式 - 使用 Ghost-CLI 安装
Ghost-CLI (Ghost Command Line Interface) 是 Ghost 官方提供的命令行工具,可以帮你一键完成整个环境的搭建和配置。
步骤 1:连接服务器并更新系统
通过 SSH 登录到你的服务器。

ssh root@你的服务器IP地址
登录后,为了确保所有软件包都是最新的,先更新一下系统列表:
sudo apt update sudo apt upgrade -y
步骤 2:安装 Node.js 和 NPM
Ghost 是一个基于 Node.js 的应用,所以需要先安装 Node.js,Ghost-CLI 推荐使用 Node.js 的 LTS (长期支持) 版本。
# 下载并执行 Node.js 官方安装脚本 curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - # 安装 Node.js 和 npm sudo apt-get install -y nodejs
安装完成后,验证一下版本:
node -v # 应该显示 v18.x 或 v20.x npm -v # 应该显示对应的 npm 版本
步骤 3:安装 Nginx、MySQL 客户端和 Certbot
Ghost-CLI 需要 Nginx 作为反向代理,需要 MySQL 来存储数据,并且需要 Certbot 来获取免费的 SSL 证书。
sudo apt install -y nginx mysql-client certbot
步骤 4:安装 Ghost-CLI
这是最关键的一步,安装 Ghost-CLI 本身。
sudo npm install ghost-cli@latest -g
sudo:因为 Ghost-CLI 需要在系统级别安装。@latest:确保安装的是最新的稳定版本。
步骤 5:创建 Ghost 用户和目录
强烈建议不要使用 root 用户来运行 Ghost! 这是为了安全考虑。
# 创建一个名为 'ghost' 的系统用户,并且不允许它登录 sudo adduser --system --group ghost # 创建一个用于存放 Ghost 文件的目录 sudo mkdir -p /var/www/ghost # 将该目录的所有权赋予 ghost 用户 sudo chown ghost:ghost /var/www/ghost # 给予该用户必要的权限 sudo chmod 775 /var/www/ghost
步骤 6:运行 Ghost-CLI 安装
切换到 ghost 用户,并进入我们刚才创建的目录,然后运行安装命令。
# 切换到 ghost 用户 sudo su - ghost # 进入 Ghost 目录 cd /var/www/ghost # 运行安装命令! ghost install
步骤 7:配置 Ghost
运行 ghost install 后,CLI 会引导你进行一系列配置:
-
? Enter your blog URL:- 输入你的域名,
https://www.yourblog.com。 - 注意:这里必须使用
https://,因为 Ghost-CLI 会自动帮你配置 SSL 证书。
- 输入你的域名,
-
? Enter your MySQL hostname:- MySQL 安装在同一个服务器上,直接按回车,默认是
localhost。
- MySQL 安装在同一个服务器上,直接按回车,默认是
-
? Enter your MySQL username:- 输入 MySQL 用户名,你可以输入
root,CLI 会提示你设置密码。
- 输入 MySQL 用户名,你可以输入
-
? Enter your MySQL password:- 输入你为 MySQL
root用户设置的密码。
- 输入你为 MySQL
-
? Enter your Ghost database name:- 输入一个数据库名称,
ghost_prod。
- 输入一个数据库名称,
-
? Do you wish to set up a "ghost" user? Yes- 输入
Yes,CLI 会为你创建一个专门用于 Ghost 的数据库用户,并设置一个随机强密码。请务必记下这个密码!
- 输入
-
? Do you wish to set up Nginx? Yes- 输入
Yes,让 CLI 自动配置 Nginx。
- 输入
-
? Do you wish to set up SSL? Yes- 输入
Yes,让 CLI 使用 Certbot 自动申请和配置免费的 Let's Encrypt SSL 证书。
- 输入
-
? Do you wish to set up systemd? Yes- 输入
Yes,让 Ghost 作为系统服务运行,这样它就能在服务器重启后自动启动。
- 输入
-
? Do you want to start Ghost? Yes- 输入
Yes,启动你的 Ghost 博客!
- 输入
安装完成后,CLI 会告诉你你的博客已经运行在 https://www.yourblog.com,你可以直接在浏览器中访问它,并开始设置管理员账户。
第三部分:高级方式 - 手动安装
如果你需要对服务器环境有更精细的控制,可以选择手动安装。
步骤 1:连接服务器并更新系统
ssh root@你的服务器IP地址 sudo apt update sudo apt upgrade -y
步骤 2:安装 LEMP 栈
LEMP 指的是 Linux, Nginx, MySQL, PHP,虽然 Ghost 不用 PHP,但我们需要这个环境的其他部分。
-
安装 Nginx
sudo apt install -y nginx
-
安装 MySQL
sudo apt install -y mysql-server
安装后,运行安全脚本:
sudo mysql_secure_installation
根据提示设置 root 密码,并回答 "Y" 来移除匿名用户、禁止 root 远程登录等。
-
安装 Node.js 和 NPM
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs
步骤 3:配置 MySQL 数据库
- 登录 MySQL:
sudo mysql -u root -p
- 创建数据库和用户:
CREATE DATABASE ghost_db; CREATE USER 'ghost_user'@'localhost' IDENTIFIED BY '一个强密码'; GRANT ALL PRIVILEGES ON ghost_db.* TO 'ghost_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
步骤 4:下载并配置 Ghost
-
创建一个目录并进入:
sudo mkdir -p /var/www/ghost sudo chown $USER:$USER /var/www/ghost cd /var/www/ghost
-
使用
ghost install local命令来生成一个配置文件模板:ghost install local
这个命令不会真正安装,只是下载 Ghost 并生成一个
config.production.json文件,完成后,你可以删除它。 -
下载 Ghost 的最新版本:
sudo npm install ghost-cli@latest npx ghost install
注意:这里使用
npx可以确保使用刚刚安装的ghost-cli。 -
手动编辑配置文件 打开生产环境的配置文件:
nano config.production.json
修改以下关键项:
{ "url": "https://www.yourblog.com", "server": { "host": "127.0.0.1", // 只允许本地访问 "port": 2368 }, "database": { "client": "mysql", "connection": { "host": "localhost", "user": "ghost_user", // 你刚才创建的 MySQL 用户 "password": "一个强密码", // 你设置的密码 "database": "ghost_db" // 你创建的数据库名 } }, "mail": { // ... 邮件配置 ... }, "paths": { "contentPath": "/var/www/ghost/content" } }保存并退出 (
Ctrl+X,Y,Enter)。
步骤 5:配置 Nginx
-
创建一个新的 Nginx 配置文件:
sudo nano /etc/nginx/sites-available/ghost
-
粘贴以下配置,记得修改域名:
server { listen 80; server_name www.yourblog.com yourblog.com; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:2368; proxy_set_header Host $host; proxy_redirect off; } client_max_body_size 50M; } -
启用这个站点:
sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/
-
测试并重启 Nginx:
sudo nginx -t sudo systemctl restart nginx
步骤 6:配置 SSL 证书
使用 Certbot 获取免费证书:
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d www.yourblog.com -d yourblog.com
按照提示操作,Certbot 会自动修改你的 Nginx 配置,添加 HTTPS 支持。
步骤 7:配置 Systemd 服务
-
创建一个服务文件:
sudo nano /etc/systemd/system/ghost.service
-
[Unit] Description=Ghost After=network.target [Service] Type=simple User=www-data Group=www-data WorkingDirectory=/var/www/ghost ExecStart=/usr/bin/npm start ExecReload=/bin/kill -s HUP $MAINPID Restart=always Environment=NODE_ENV=production Environment=PATH=/usr/bin:/usr/local/bin [Install] WantedBy=multi-user.target
注意:这里的用户是
www-data,如果你之前创建了ghost用户,请相应修改。 -
启动并启用 Ghost 服务:
sudo systemctl daemon-reload sudo systemctl start ghost sudo systemctl enable ghost
你的 Ghost 博客应该已经通过 https://www.yourblog.com 正常运行了。
常见问题与后续操作
-
如何访问 Ghost 后台? 访问
https://www.yourblog.com/ghost,用你最初创建的管理员账户登录。 -
如何更新 Ghost? 如果你是用 Ghost-CLI 安装的,非常简单:
sudo su - ghost cd /var/www/ghost ghost update
手动安装的更新过程比较复杂,通常需要重新下载 Ghost 并迁移数据库,不推荐新手操作。
-
如何备份? 最重要的是备份两个东西:
- 数据库:使用
mysqldump命令备份数据库。 - 内容文件夹:备份
/var/www/ghost/content目录,里面包含你的图片、主题等。
- 数据库:使用
-
无法访问网站怎么办?
- 检查防火墙:
sudo ufw status,确保 80 (HTTP) 和 443 (HTTPS) 端口是开放的。 - 检查 Nginx:
sudo systemctl status nginx。 - 检查 Ghost 服务:
sudo systemctl status ghost(如果你用了 systemd)。 - 查看错误日志:
sudo tail -f /var/log/nginx/error.log。
- 检查防火墙:
希望这份详细的教程能帮助你成功安装 Ghost 系统!祝你搭建顺利!
