友链朋友圈(By @冰糖红茶)—— Server - SQLite 部署方案
这是一篇过期文章 241030
241030
- @Rock-Candy-Tea(冰糖红茶)开发的友链朋友圈项目已年久失修,项目贡献者 @CCKNBC 建议迁往 Friend-Circle-Lite:轻量友链朋友圈 | LiuShen’s Blog (qyliu.top)(作者 @清羽飞扬 )
本来不想写的,觉得自己看文档就能实现。但是实际操作过程出现了很多状况,文档不是太详细,MySQL 部署失败…于是打算水一篇 😓。
官方文档:友链朋友圈 - 使用手册
环境
我采用的方案是 Server + SQLite 的部署方案。
根据文档要求 Python 环境为 3.8,原本我的服务器版本为 3.6,需要升级。(此处由于我忽略版本导致踩坑)
1 | # 适用于CentOS系统。安装db4-devel可能报错,那我们就跳过它...... |
安装 Git:
1 | yum install -y git |
项目安装
找个好地方克隆仓库:
1 | git clone https://github.com/Rock-Candy-Tea/hexo-circle-of-friends.git |
编辑 /hexo_circle_of_friends/fc_settings.yaml
文件:
1 | LINK: [ |
部署与测试 API:
1 | python3 deploy.py # 部署 |
ERROR: Could not find a version that satisfies the requirement aiofiles (from versions: none)
部署时如遇找不到包的错误,可尝试更换源下载。如针对以上报错,可以执行:
1 | # 指定版本 |
但是依赖列表这么多,总不能一个个下。我们可以直接执行这条指令:
1 | pip3 install -r /var/www/hexo-circle-of-friends/hexo_circle_of_friends/requirements.txt |
完事后,重新部署即可。
Nginx 配置
由于之前 [1] 弄了好一会这个配置,为的是网站实现全程 HTTPS 访问。现在我也想让外部访问朋友圈接口时也使用 HTTPS。
1 | server { |
通过 location 正则匹配,识别出 /fc_backend/
开头的链接为朋友圈 API 的请求,并将其转发到端口 8000(朋友圈默认端口)。发送给 8000 端口的地址不包含 /fc_backend/
。
当然,这里需要前端也要配合发出 /fc_backend/
开头的请求。
修改配置文件后别忘了重启 Nginx。
1 | nginx -s reload |
前端部署
这里我采用了文档方案。
1 | <div id="hexo-circle-of-friends-root"></div> |
注意 private_api_url
中的设置。
前端改密码方式
友链朋友圈项目的前端第一次登录时即设置密码,如果想要改的话则需要自行删除数据库 auth
、secret
表格。
进入服务器 hexo-circle-of-friends
根目录,找到 data.db
文件
1 | sqlite3 |
重新部署朋友圈即可。
【可选】鱼塘 DLC
鱼塘 DLC 是 @张洪Heo 写的一个基于友链 - 朋友圈的脚本。它可以随机展示一条抓取记录。与洪涝不同的是,我稍微调整了一下 CSS 以改进页面布局。
1 | <div class="title-h2-a" style="overflow: hidden;"> |
需要注意的是,必须使用 jquery.js
,记得引入。上面 jquery.js
使用了字节跳动静态资源公共 CDN,可按需替换链接。
此外不要漏掉 id
为 random-post
的框,这是回显钓鱼信息用的。
【可选】设置 CDN 的不缓存规则
由于本站采取了 CDN,接口 https://blog.uuanqin.top/fc_backend/
所有请求应该设置不缓存,否则鱼塘、朋友圈刷新了还是一个样。
打开 CDN 加速域名配置页面、增加多一个缓存规则即可(以腾讯云 CDN 为例):
腾讯云 EdgeOne 中应该为:
后续改进
@清羽飞扬 的作品 241028
:轻量友链朋友圈可解决这些问题:
- 服务器重启后需要自行手动部署
- 目前使用的朋友圈太庞杂,以后可以开发自己的爬虫
- 夜间模式下部分文字未显示
本文参考
- CentOS 8 升级 Python3.6 到 Python3.9_雪靡的博客-CSDN 博客
- 常见问题 (yyyzyyyz.cn)
- 【Nginx 用法】nginx location 正则表达式写法,详解 Nginx location 匹配规则(很详细哦)_nginx location 正则_No8g 攻城狮的博客-CSDN 博客
- SQLite 删除表 | 菜鸟教程 (runoob.com)
- Hexo -43- 友链朋友圈 后端部署-腾讯云开发者社区-腾讯云 (tencent.com)
- Nginx 配置反向代理,一篇搞定! - 知乎 (zhihu.com)
- 【python入门】如何生成和安装requirements.txt依赖?_requirements依赖-CSDN博客
- pip安装包报错Could not find a version that satisfies the requirement pymysql (from versions: none) - 知乎 (zhihu.com)
- 鱼塘DLC - 钓鱼:你钓到了一篇惊世好文! | 张洪Heo (zhheo.com)