文档首页/ 弹性云服务器 ECS/ 最佳实践/ 搭建网站/ 手工搭建Ghost博客(Ubuntu 22.04)
更新时间:2026-07-08 GMT+08:00
分享

手工搭建Ghost博客(Ubuntu 22.04)

简介

Ghost是基于Node.js的开源博客平台,可以为用户提供更加便捷的写作与发布平台,本文以Ubuntu 22.04操作系统云服务器为例,介绍了在华为云上如何使用弹性云服务器的Linux实例部署Ghost博客。

前提条件

  1. 弹性云服务器已绑定弹性公网IP,具体操作请参考绑定弹性公网IP
  2. 弹性云服务器所在安全组添加了如下表所示的安全组规则,具体步骤参见为安全组添加安全组规则
    表1 安全组规则

    方向

    优先级

    策略

    类型

    协议端口

    源地址

    入方向

    1

    允许

    IPv4

    TCP: 22

    0.0.0.0/0

    入方向

    1

    允许

    IPv4

    TCP: 80

    0.0.0.0/0

    入方向

    1

    允许

    IPv4

    TCP: 443

    0.0.0.0/0

步骤一:创建新用户

由于Ghost官方不推荐使用root用户直接操作,因此需要重新创新的用户,并为其配置权限。

  1. 登录弹性云服务器。

    具体操作请参见Linux ECS登录方式概述

  2. 执行以下命令,创建新用户。本文以user为例。
    adduser user

    回显信息如下:

    Adding user `user' ...
    Adding new group `user' (1000) ...
    Adding new user `user' (1000) with group `user' ...
    Creating home directory `/home/user' ...
    Copying files from `/etc/skel' ...
    New password:
    Retype new password:
    passwd: password updated successfully
    Changing the user information for user
    Enter the new value, or press ENTER for the default
            Full Name []:
            Room Number []:
            Work Phone []:
            Home Phone []:
            Other []:
    Is the information correct? [Y/n] Y
    1. New password:Retype new password:提示信息中,请按照提示输入并确认用户密码,密码默认不显示,输入完成后按Enter。
    2. Enter the new value, or press ENTER for the default提示信息中,按Enter保持默认即可,您也可以根据实际情况填写用户相关信息。
    3. Is the information correct? [Y/n]提示信息中,输入Y确认信息,并按Enter,完成设置。
  3. 执行以下命令,将新创建的用户添加到组。
    usermod -aG sudo user
  4. 执行以下命令,切换到user用户。
    su - user

步骤二:安装Nginx

部署Ghost博客,需要安装Nginx作为HTTP服务器,本节以安装Nginx 1.18.0版本为例。

  1. 执行以下命令,更新Linux操作系统和软件包。
    sudo apt-get update
    sudo apt-get upgrade -y
  2. 执行以下命令,安装Nginx。
    sudo apt-get install -y nginx
  3. 执行以下命令查看Nginx版本。
    nginx -v

    回显信息如下:

    nginx version: nginx/1.18.0 (Ubuntu)
  4. 调整防火墙(可选)。

    UFW(Uncomplicated Firewall)是一个iptables的接口,可以简化配置防火墙的过程。Ubuntu默认安装了UFW,执行以下命令查看防火墙的状态。

    sudo ufw status

    如果你没有也不想开启防火墙,则可以直接跳过此步骤,如果你想要开启防火墙可以通过以下命令实现。

    sudo ufw enable

    之后再次检查防火墙状态验证是否成功开启防火墙。

    在测试Nginx之前,需要重新配置防火墙软件以允许访问Nginx。执行以下命令,将Nginx自动注册在UFW。

    sudo ufw app list

    回显信息:

    Available applications:
      Nginx Full
      Nginx HTTP
      Nginx HTTPS
      ...
    • Nginx Full:此配置文件打开端口 80(正常,未加密的Web流量)和端口443(TLS / SSL加密流量)
    • Nginx HTTP:此配置文件仅打开端口 80(正常,未加密的Web流量)
    • Nginx HTTPS:此配置文件仅打开端口 443(TLS / SSL加密流量)

    执行以下命令确保防火墙允许HTTP和HTTPS连接。

    sudo ufw allow 'Nginx Full'
  5. 验证Nginx是否正常工作。

    在浏览器中通过域名或者IP地址进行访问Nginx,如果Nginx正常启动则会打开Welcome to nginx的欢迎页面。

    使用浏览器访问 “http://云服务器IP地址”,显示如下页面,说明Nginx安装成功。

步骤三:安装MySQL

MySQL是一种开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分安装。它使用关系数据库和SQL结构化查询语言)来管理其数据。

  1. 执行以下命令,安装MySQL。
    sudo apt-get install -y mysql-server
  2. 执行以下命令查看MySQL版本。
    mysql -V

    回显信息如下:

    mysql  Ver 8.0.45-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
  3. 执行以下命令,连接MySQL。
    sudo mysql
  4. 执行以下命令,创建Ghost使用的数据库。本文以ghost_data为例。
    CREATE DATABASE ghost_data;
  5. 执行以下命令,设置root账户密码。
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';

    其中'xxxxx'为待设置的密码。

  6. 执行以下命令,重新加载MySQL的授权表,确保数据库权限的更改生效。
    FLUSH PRIVILEGES;
  7. 执行以下命令,退出MySQL。
    exit

步骤四:安装Node.js

  1. 下载并导入NodesourceGPG密钥。
    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
  2. 创建deb仓库。
    NODE_MAJOR=22
    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
  3. 更新并安装Node.js。
    sudo apt-get update
    sudo apt-get install -y nodejs
  4. 安装完成后,执行以下命令查看Node.js版本。
    node -v

    回显信息如下:

    root@ecs-c47c:~# node -v
    v22.22.2

步骤五:Ghost 安装与配置

Ghost v1.0.0 及以上版本已加入了Ghost-CLI,因此可以直接安装配置Ghost-CLI。

  1. 执行以下命令,安装Ghost-CLI。
    sudo npm install ghost-cli@latest -g

    当出现如下图所示时,表示已安装Ghost-CLI命令行工具。

  2. 依次执行以下命令,创建Ghost安装目录并授权。
    sudo mkdir -p /var/www/ghost 
    sudo chown user:user /var/www/ghost 
    sudo chmod 775 /var/www/ghost
  3. 依次执行以下命令,安装Ghost。
    cd /var/www/ghost 
    ghost install
  4. 配置Ghost。

    如果上面在 /var/www/ghost/ 目录下运行ghost install成功的话,会要求配置相关参数:

    • Enter your blog URL:输入已解析的域名,例如:http://example.com。
    • Enter your MySQL hostname:输入数据库连接地址。本示例中MySQL数据库与Ghost部署在同一台实例中,直接按Enter保持默认即可。
    • Enter your MySQL username:输入数据库用户名,输入root后按Enter。
    • Enter your MySQL password :输入数据库密码,输入5中设置的数据库密码后按Enter。
    • Enter your Ghost database name:输入Ghost使用的数据库名称。输入ghost_data后按Enter。

    完成设置后,界面下方会输出Ghost的管理员访问地址。例如:http://49.4.XX.XX/ghost。

    如果配置后需要修改可以通过以下命令去文件中进行配置:

    vim config.production.json

    打开之后就是生产环境配置内容了。参考配置见下图:

  5. 验证Ghost搭建完成。
    如果成功的安装Ghost之后,就可以通过域名访问到Ghost博客。
    • 前台首页

      在本地Windows主机或其他任意具有公网访问能力的Windows主机中,打开浏览器并输入http://ECS实例公网IP地址,访问Ghost前台首页。

    • 后台管理页面

      在本地Windows主机或其他任意具有公网访问能力的Windows主机中,打开浏览器并输入http://ECS实例公网IP地址/ghost,访问Ghost后台管理页面。

后续操作

如果您有建站需求,但还没有属于自己的域名,可以先购买域名。购买域名后,如果您的网站部署在中国内地节点服务器上,则必须先完成域名备案,再把域名解析至部署网站的ECS实例上。相关操作指引如下:

  • 购买域名

    为了便于网站的访问和使用,可以给网站设置一个单独的域名,使用域名访问网站。如果已有可用的域名,可以直接认证使用,如果没有域名,需要先购买域名,具体操作请参见域名注册流程

  • 域名备案

    根据工信部相关法律法规规定,部署在中国大陆节点的网站需要向管局提交备案申请,备案审核通过后才能开通网站。备案的管局审核需要3~20个工作日。

    如果网站没有进行备案或者备案审核不通过,则对网站的访问请求会被阻断。具体操作请参见快速完成ICP备案

  • 网站解析

    网站解析将域名与网站服务器IP地址相关联,实现通过在浏览器中直接输入域名访问网站。具体操作请参见快速添加网站解析

相关文档