Hexo

Qexo

一个美观、强大的在线 静态博客 管理器

  • 简单:支持使用 Vercel 零成本一键部署, 您只需要配置一个免费数据库
  • 强大:无限的拓展性, 应有尽有的配套功能尽在掌握
  • 美观:基于 Bootstrap & Argon 的现代化响应式风格
  • 全面:Django 后端, 支持多种平台和数据库

Qexo 官方文档

服务器准备

  • 服务商:亚马逊云
  • 产品:EC2
  • 系统:Ubuntu Server 22.04 LTS - 其他系统可能有所差异

安装 Python3

执行以下命令一键安装 python3 和 pip3

1
sudo apt update && sudo apt install -y python3 python3-pip

分别通过以下命令查看是否安装成功

  • python3 --version
  • pip3 --version

安装 MySQL 数据库

安装 MySQL

在 1Panel 应用商店中找到 MySQL,点击安装
版本选择 5.7
端口外部访问可以不用开(开了也用不到它)
MySQL 安装

添加数据库

数据库安装成功后,点击菜单栏的数据库来到MySQL的管理页面
点击创建数据库
创建数据库
名称用户名随意填,比如都填 hexo,然后确认创建

安装 Qexo

下载 Qexo

执行以下命令,自动从 github 将仓库克隆到本地

1
git clone https://github.com/Qexo/Qexo.git ~/qexo

这将从 github 克隆最新的源码到 /home/ubuntu/qexo 文件夹中

从 github 下载最新发行版并解压

  1. Release 下载最新的版本 Source code (zip) 到电脑上

  2. 通过 1Panel 上传并解压
    上传压缩包

    刷新页面后可以看到文件,点击解压
    上传的文件

配置 Qexo

在 1Panel 中找到 qexo 的下载目录

  1. 创建名为configs.py的文件

    创建文件
  2. 编辑configs.py,添加以下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import pymysql
    pymysql.install_as_MySQLdb()
    #域名
    DOMAINS = ["127.0.0.1", "localhost"]
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    #数据库名
    'NAME': 'qexo',
    #用户名
    'USER': 'qexo',
    #密码
    'PASSWORD': 'KFCvivo50',
    #数据库所在主机地址
    'HOST': '127.0.0.1',
    #端口
    'PORT': '3306',
    'OPTIONS': {
    "init_command": "SET sql_mode='STRICT_TRANS_TABLES'"
    }
    }
    }
    • DOMAINS 为可以访问到 Qexo 域名或 ip,如果访问的域名或 ip 没有在这里定义,访问会被拦截
      这里建议不做修改,就填 127.0.0.1localhost

    • 数据库名用户名密码 修改为 #添加数据库 时填入的内容

    点击确认保存

  3. 返回上一级目录(qexo的安装目录)
    修改 qexo 文件夹及其子文件夹的归属为 ubuntu
    修改 qexo 文件夹权限

  4. 执行 cd ~/qexo 来到 qexo 的安装目录,再执行以下命令进行数据初始化

    1
    bash migrate.sh

启动 Qexo

安装 Supervisor

Supervisor 是一款开源的进程管理工具,它可以实现进程的自动启动、重启、监控等功能,并可以方便地实现进程的异步启动和自动化管理。
这里需要它来帮助我们管理 qexo 的进程

1
sudo apt update && sudo apt install supervisor

执行命令一键安装 supervisor
在 1Panel 面板中依次点击 工具箱 -> 进程守护如果显示 未检测到 Supervisor 服务,说明Supervisor未安装或安装失败,请重试上面的安装命令

点击 初始化,使用默认配置,点击确认保存
进程守护初始化
再次确认初始化

创建 Qexo 进程守护

点击 创建守护进程
qexo 进程配置

  • 名称随意,比如填 114514
  • 启动用户填 ubuntu
  • 如上图选择运行目录
  • 启动命令填 python3 manage.py runserver 0.0.0.0:8000 --noreload
    这将在 8000 端口上启动 Qexo 服务
  • 进程数填 1

最后确认保存
这时可以通过 #配置 Qexo 时第 2 步配置的域名(或 公有ip) 加端口打开 Qexo面板
Qexo 初始化页面

(可选)反向代理 Qexo

反向代理 Qexo

如果没有域名,建议直接跳过这一步

为了方便对 Qexo 进行管理,可以在 1Panel 面板新建一个网站来反向代理 Qexo
在 1Panel 的网站页面选择 创建网站 -> 反向代理

  • 主域名填自己的域名(不能与博客相同,比如解析一个qexo-admin.example.com)

  • 代号随意,比如 qexo

  • 代理地址填 #配置 Qexo 时第 2 步配置的 ip + 创建 Qexo 进程守护 时,命令中使用的端口
    例: 127.0.0.1:8000

qexo 反向代理创建

再点击 配置 进入网站的配置界面
配置反向代理

将后端域名改为 127.0.0.1localhost - 因为 #配置 Qexo 时,我的 DOMAINS 填的 127.0.0.1
修改后端域名

这时,可以直接使用 域名 来访问 Qexo 面板

Qexo 面板初始化

通过域名ip 打开 Qexo 面板,首次打开会跳转到初始化页面,点击开始初始化
Qexo 博客配置

  • 服务商选 本地,表示 hexo 与 qexo 都部署在同一台服务器上
    其他服务商请按要求填写
  • 使用配置选择 Hexo
  • 博客路径填 Hexo 的源代码的绝对路径,例如/home/ubuntu/hexoblog
    注意: 不是静态资源的路径。如果博客是使用一键部署插件部署到服务器的,请按照 #Hexo 中的部署方式部署 Hexo 博客到服务器
    因为一键部署只会推送静态资源到服务器,Qexo 需要 Hexo 源代码才能修改博客内容
  • 自动部署填 hexo clean && hexo g
    这会自动生成静态资源,并将静态资源放在 hexo 根配置文件中指定的目录(网站目录)中

点击下一步,即可通过方才设置的账号和密码登录面板
Qexo 面板

恭喜,你的 Qexo 部署成功了!