杰瑞科技汇

如何安装Ghost系统?步骤详解!

  1. 推荐方式:使用 Ghost-CLI 安装(适用于开发、测试、个人博客)

    这是最简单、最快捷的方式,官方推荐,它会在你的服务器上自动安装 Nginx、MySQL、Node.js 和 Ghost 本身。

    如何安装Ghost系统?步骤详解!-图1
    (图片来源网络,侵删)
  2. 高级方式:手动安装(适用于生产环境,需要更多自定义)

    适合有一定 Linux 基础的用户,可以让你对服务器的每一个组件都有完全的控制权。


第一部分:准备工作(两种方式通用)

在开始安装之前,你需要准备以下几样东西:

  1. 一台云服务器(VPS)

    • 推荐系统:Ubuntu 22.04 LTS 或 Debian 11,Ghost 官方主要支持这两个系统。
    • 最低配置
      • CPU: 1 核
      • 内存: 1 GB (推荐 2 GB 或以上,特别是如果你流量较大)
      • 硬盘: 20 GB SSD
    • 推荐服务商:DigitalOcean, Vultr, Linode, 阿里云, 腾讯云等。
  2. 一个域名

    如何安装Ghost系统?步骤详解!-图2
    (图片来源网络,侵删)
    • www.yourblog.com,你需要将这个域名的 A 记录指向你服务器的公网 IP 地址。
  3. 连接服务器的工具

    • 推荐PuTTY (Windows) 或 Terminal (macOS/Linux)。
  4. 基本的服务器操作知识

    • 如何通过 SSH 登录服务器。
    • 如何使用基本的 Linux 命令(如 cd, ls, mkdir, apt 等)。

第二部分:推荐方式 - 使用 Ghost-CLI 安装

Ghost-CLI (Ghost Command Line Interface) 是 Ghost 官方提供的命令行工具,可以帮你一键完成整个环境的搭建和配置。

步骤 1:连接服务器并更新系统

通过 SSH 登录到你的服务器。

如何安装Ghost系统?步骤详解!-图3
(图片来源网络,侵删)
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 会引导你进行一系列配置:

  1. ? Enter your blog URL:

    • 输入你的域名,https://www.yourblog.com
    • 注意:这里必须使用 https://,因为 Ghost-CLI 会自动帮你配置 SSL 证书。
  2. ? Enter your MySQL hostname:

    • MySQL 安装在同一个服务器上,直接按回车,默认是 localhost
  3. ? Enter your MySQL username:

    • 输入 MySQL 用户名,你可以输入 root,CLI 会提示你设置密码。
  4. ? Enter your MySQL password:

    • 输入你为 MySQL root 用户设置的密码。
  5. ? Enter your Ghost database name:

    • 输入一个数据库名称,ghost_prod
  6. ? Do you wish to set up a "ghost" user? Yes

    • 输入 Yes,CLI 会为你创建一个专门用于 Ghost 的数据库用户,并设置一个随机强密码。请务必记下这个密码!
  7. ? Do you wish to set up Nginx? Yes

    • 输入 Yes,让 CLI 自动配置 Nginx。
  8. ? Do you wish to set up SSL? Yes

    • 输入 Yes,让 CLI 使用 Certbot 自动申请和配置免费的 Let's Encrypt SSL 证书。
  9. ? Do you wish to set up systemd? Yes

    • 输入 Yes,让 Ghost 作为系统服务运行,这样它就能在服务器重启后自动启动。
  10. ? 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,但我们需要这个环境的其他部分。

  1. 安装 Nginx

    sudo apt install -y nginx
  2. 安装 MySQL

    sudo apt install -y mysql-server

    安装后,运行安全脚本:

    sudo mysql_secure_installation

    根据提示设置 root 密码,并回答 "Y" 来移除匿名用户、禁止 root 远程登录等。

  3. 安装 Node.js 和 NPM

    curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
    sudo apt-get install -y nodejs

步骤 3:配置 MySQL 数据库

  1. 登录 MySQL:
    sudo mysql -u root -p
  2. 创建数据库和用户:
    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

  1. 创建一个目录并进入:

    sudo mkdir -p /var/www/ghost
    sudo chown $USER:$USER /var/www/ghost
    cd /var/www/ghost
  2. 使用 ghost install local 命令来生成一个配置文件模板:

    ghost install local

    这个命令不会真正安装,只是下载 Ghost 并生成一个 config.production.json 文件,完成后,你可以删除它。

  3. 下载 Ghost 的最新版本:

    sudo npm install ghost-cli@latest
    npx ghost install

    注意:这里使用 npx 可以确保使用刚刚安装的 ghost-cli

  4. 手动编辑配置文件 打开生产环境的配置文件:

    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

  1. 创建一个新的 Nginx 配置文件:

    sudo nano /etc/nginx/sites-available/ghost
  2. 粘贴以下配置,记得修改域名

    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;
    }
  3. 启用这个站点:

    sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/
  4. 测试并重启 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 服务

  1. 创建一个服务文件:

    sudo nano /etc/systemd/system/ghost.service
  2. [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 用户,请相应修改。

  3. 启动并启用 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 并迁移数据库,不推荐新手操作。

  • 如何备份? 最重要的是备份两个东西:

    1. 数据库:使用 mysqldump 命令备份数据库。
    2. 内容文件夹:备份 /var/www/ghost/content 目录,里面包含你的图片、主题等。
  • 无法访问网站怎么办?

    1. 检查防火墙:sudo ufw status,确保 80 (HTTP) 和 443 (HTTPS) 端口是开放的。
    2. 检查 Nginx:sudo systemctl status nginx
    3. 检查 Ghost 服务:sudo systemctl status ghost (如果你用了 systemd)。
    4. 查看错误日志:sudo tail -f /var/log/nginx/error.log

希望这份详细的教程能帮助你成功安装 Ghost 系统!祝你搭建顺利!

分享:
扫描分享到社交APP
上一篇
下一篇