分类: 网站教程

  • Twikoo评论系统魔改

    Twikoo评论系统魔改

    Twikoo 评论系统魔改记录

    最近对博客里的 Twikoo 评论系统做了一些二次开发,主要围绕前端体验和博客主题适配展开。

    这篇只记录改造方向,不展开核心逻辑。

    改造内容

    这次主要调整了评论区的前端体验:

    • 评论输入框 UI 重新整理
    • 表情、图片、AI 评论按钮收纳到左下角工具胶囊中
    • 移动端按钮尺寸缩小,避免换行和拥挤
    • 评论方式按钮重新排版
    • 深色模式单独优化配色
    • 默认头像 CDN 做了适配调整
    • Twikoo 前端资源统一放到 Hexo 静态目录

    前端资源路径

    博客中引用的 Twikoo 前端文件路径为:

    /pluginsSrc/twikoo/twikoo.all.min.js
    

    对应 Hexo 项目目录

    source/pluginsSrc/twikoo/twikoo.all.min.js

    这样可以把二开后的 Twikoo 前端文件作为博客静态资源统一管理。

    页面初始化

    博客页面中仍然通过 twikoo.init 初始化评论系统。

    示例:

    twikoo.init({
      envId: 'https://twikoo.example.com',
      el: '#twikoo'
    })
    

    其中 envId 指向 Twikoo 服务地址,前端 JS 文件则走博客自己的静态资源路径。

    这次魔改重点不是重写 Twikoo,而是让它更贴合自己的博客主题。

    主要优化了评论输入框、移动端显示、深色模式和头像显示等细节。整体思路是尽量保留 Twikoo 原有能力,只在影响实际体验的地方做定制。

  • PHP 8.4.21同时安装 OPcache 和 mbstring 后出现 502

    PHP 8.4.21同时安装 OPcache 和 mbstring 后出现 502

    mbstring 扩展本身并不会导致 502 错误。 如果同时安装了 OPcache 和 mbstring 后出现的 502,问题几乎可以肯定是 OPcache 引起的

    为什么安装了 OPcache 就会 502?

    问题的根源在于 PHP 8.4.21 版本中,OPcache 扩展的 JIT(即时编译)功能与当前环境存在不兼容。这可能会导致 PHP-FPM 进程因为”段错误”而崩溃,Nginx 在无法连接到后端时就会返回 502 错误。

    解决方案(二选一)

    方案一:关闭 OPcache 的 JIT 功能(推荐,保留基础缓存)

    这个方法可以保留 OPcache 的脚本缓存加速能力,同时解决 502 错误。

    1. 定位配置文件:
      在宝塔面板的 软件商店 -> PHP 8.4 设置 -> 配置文件 中修改。

    2. 修改参数:
      在配置文件中找到 opcache.jit_buffer_size 这一行,将其值改为 0。如果找不到这行,可以手动添加。

    修改前:

    opcache.jit_buffer_size=128m
    

    修改后:

    opcache.jit_buffer_size=0
    

    这个修改会关闭 JIT 功能,但 OPcache 的字节码缓存功能依然生效,对绝大多数网站的性能影响很小。

    最后重启 PHP

    方案二:暂时卸载 OPcache 扩展

    如果修改 JIT 配置后问题依旧,或者想彻底排查,可以直接卸载 OPcache 扩展。

    1. 在宝塔面板的 PHP 8.4 设置中,切换到 安装扩展 标签页。

    2. 找到 opcache,点击 卸载。

    3. 卸载后网站会立即恢复正常。