基于腾讯云lighthouse搭建Hexo管理器-Qexo

原文地址:blog.iloli.love/archives/33...

本文图例使用腾讯云lighthouse搭建(其他服务器也没问题)
在阅读本文之前,你需要做的事:已经在 服务器/本地 部署好 hexo 及其相关依赖 ,还有python3.x及对应版本的pip 以及 git / curl 等命令
本文应用场景为通过本地部署的 Qexo 控制本地部署的 hexo ,为了轻量化,数据库使用SQlite
本文假设运行 python 的命令为 python3 ,运行 pip 的命令为 pip3 ,Qexo 目录为 /data/qexo

接下来我们开始部署 Qexo

下载所需文件

运行命令

如果是境内鸡则运行:

bash 复制代码
git clone https://ghproxy.com/https://github.com/Qexo/Qexo.git /data/qexo && cd /data/qexo && curl https://ghproxy.com/https://raw.githubusercontent.com/miaowmint/Qexo-docker/main/qexoconfigs.py -o configs.py &&  mkdir -p db && cd db && curl https://ghproxy.com/https://raw.githubusercontent.com/miaowmint/Qexo-docker/main/db/db.sqlite3 -o db.sqlite3

如果是境外鸡则运行:

bash 复制代码
git clone https://github.com/Qexo/Qexo.git /data/qexo && cd /data/qexo && curl https://raw.githubusercontent.com/miaowmint/Qexo-docker/main/qexoconfigs.py -o configs.py &&  mkdir -p db && cd db && curl https://raw.githubusercontent.com/miaowmint/Qexo-docker/main/db/db.sqlite3 -o db.sqlite3

命令解释:git clone Qexo的所需文件到 /data/qexo ,然后在该目录下载数据库配置文件,接下来在该目录下新建 db 文件夹,在 db 文件夹中下载数据库文件

运行结果如图所示

修改配置文件

接下来修改 /data/qexo/configs.py ,将其中的 127.0.0.1yourqexo.com 分别修改为 你的服务器IP你用来访问Qexo的域名(如果有的话)

安装python依赖包

然后运行如下命令安装Python包

bash 复制代码
cd /data/qexo && pip3 install -r requirements_withoutmsyql.txt

部分运行结果如图所示

如果这一步遇到报错,可能是因为你的python版本不合适,或者网络问题,或者镜像源问题,或者各种奇奇怪怪的问题;总之请自行解决

另附一份可能的报错以及解决方案:

对于如下的报错,可以将上面的命令改为下面这个

bash 复制代码
cd /data/qexo && pip3 install -r requirements_withoutmsyql.txt --ignore-installed PyYAML

运行 Qexo

接下来运行命令

python3 manage.py makemigrations && python3 manage.py migrate

运行结果如图,看到 ERROR: Provider获取失败, 跳过(functions.py.<module>[line:55]) 不用理会,是正常现象

如果没有报错的话就可以继续运行如下命令

lua 复制代码
python3 manage.py runserver 0.0.0.0:8000 --noreload

可以看到 Qexo 已经运行成功了

此时访问 http://你的服务器IP:8000 就可以进入 Qexo 初始化并愉快的使用 Qexo 了

使用 supervisor 常驻 Qexo 进程

在上面的步骤虽然成功运行了 Qexo ,但是如果我们按了 Ctrl + C 或者断开 ssh 连接,Qexo 进程就莫得了,总之我们要想办法常驻 Qexo 进程

有一个方法是使用 screen 新建一个视窗运行 python3 manage.py runserver 0.0.0.0:8000 --noreload

这个方法确实有效,但缺点是当服务器重启后无法自动运行 Qexo ,所以我们可以使用另一种方案:使用 supervisor 常驻 Qexo 进程

这里我使用的是宝塔面板里的插件 进程守护管理器 ,这个插件就是基于 supervisor 的,如果你不想使用宝塔面板,请自行找教程安装 supervisor ,我会在下面给出子配置文件

按照下图所示添加守护进程,点击确定即可

以下为该配置对应的 supervisor 子配置文件

ini 复制代码
[program:qexo]
command=python3 manage.py runserver 0.0.0.0:8000 --noreload
directory=/data/qexo/
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/www/server/panel/plugin/supervisor/log/qexo.out.log
stderr_logfile=/www/server/panel/plugin/supervisor/log/qexo.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=root
priority=999
numprocs=1
process_name=%(program_name)s_%(process_num)02d

FAQ

如果我想通过域名访问 Qexo 应该怎么做

通过 Nginx 反代 http://127.0.0.1:8000

如果使用CDN,并且CDN支持自定义回源端口,则可以在CDN侧设置 使用 HTTP 回源 8000 端口

如果我的服务器上有 python3.x 但是没有对应的 pip 怎么办

试试运行如下命令

sql 复制代码
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3 get-pip.py

使用 Qexo 更新文章时无法自动部署,报错 /bin/sh: line 1: hexo: command not found

我也是这个情况,可以通过命令行部署,但是不能通过 Qexo 自动部署,不知道为什么,在好几台服务器上试了都是这样

有一键脚本吗

没有,有时间我或许会试着写一个,但脚本里绝对不会提供 环境 和 依赖 的配置

有 Docker 版本吗

没有,具体理由见 github.com/miaowmint/Q...

相关推荐
Huazie1 小时前
来花个几分钟,轻松掌握 Hexo Diversity 主题配置内容
前端·javascript·hexo
Huazie8 天前
一篇搞定 Hexo Diversity 主题接入!支持多主题自由切换!
javascript·github·hexo
dzq19816 天前
Hexo提交部署命令与Git Bash Here控制终端中按下Ctrl+C无法中断hexo s的解决办法
运维·git·hexo·部署博客·hexo s·ctrl+c·源码推送
real_metrix4 个月前
【教程】Hexo 部署到 Github Page 后,自定义域名失效的问题
hexo·github page
Gzzz__4 个月前
百度、谷歌、必应收录个人博客网站
博客·hexo·butterfly
北桥苏5 个月前
Hexo最新实战:(一)Hexo7.0+GitHub Pages博客搭建
github·hexo·github pages
咸鱼运维杂谈6 个月前
hexo 博客插入本地图片时遇到的坑
linux·运维·hexo
xiezhr6 个月前
小伙伴说VuePress太简洁了,还有没有其他博客推荐?
博客·hexo·个人网站
shandianchengzi7 个月前
【BUG】前端|GET _MG_0001.JPG 404 (Not Found),hexo博客搭建过程图片路径正确却找不到图片
前端·bug·hexo·blog
昔人'7 个月前
csdn文章迁移/迁走历程与实践
hexo·csdn·博客迁移