Chevereto V4 自托管图床完全搭建教程
前言 自创建HOSTEYE网站以来,我一直致力于构建一个完善的图床程序。尽管公有图床具有稳定性,但我难以忍受非VIP服务的限制和广告。为了弘扬追求卓越的精神,同时提升自身在小型项目维护方面的经验,我最终决定搭建自己的图床系统。 选择Chevereto的原因之一是其最近更新的订阅模式。在作者的博客中,他提到:“我确信以一次性支付的方式提供软件会严重危害软件产品,并损害长期用户的利益。一次性授权带来的负面影响包括(1)高昂的许可定价,(2)淡化的发布周期,(3)停滞不前的开发,(4)缺乏引人注目的功能,以及(5)高昂的支持费用。” 这使我相信这个付费程序可以持续得到维护。 借助我自己的经验,本教程将为初学者提供一个极为详尽的指南,以帮助他们完整地搭建这个程序。 本文使用AAPanel面板来搭建,你也可以安装官方的安装脚本,使用Apache作为HTTP Web server在全新的机器上进行安装。 官方推荐的环境是Php版本在8.0以上,Mysql支持5.7和8。 本文的安装环境是Php 8.2+Nginx 1.24+Mysql 8.0 购买 在上个月,Chevereto
Chevereto V4 自托管图床完全搭建教程二——管理员和其他配置设置
Chevereto V4 自托管图床完全搭建教程前言 自创建HOSTEYE网站以来,我一直致力于构建一个完善的图床程序。尽管公有图床具有稳定性,但我难以忍受非VIP服务的限制和广告。为了弘扬追求卓越的精神,同时提升自身在小型项目维护方面的经验,我最终决定搭建自己的图床系统。 选择Chevereto的原因之一是其最近更新的订阅模式。在作者的博客中,他提到:“我确信以一次性支付的方式提供软件会严重危害软件产品,并损害长期用户的利益。一次性授权带来的负面影响包括(1)高昂的许可定价,(2)淡化的发布周期,(3)停滞不前的开发,(4)缺乏引人注目的功能,以及(5)高昂的支持费用。” 这使我相信这个付费程序可以持续得到维护。 借助我自己的经验,本教程将为初学者提供一个极为详尽的指南,以帮助他们完整地搭建这个程序。 本文使用AAPanel面板来搭建,你也可以安装官方的安装脚本,使用Apache作为HTTP Web server在全新的机器上进行安装。 官方推荐的环境是Php版本在8.0以上,Mysql支持5.7和8。 本文的安装环境是Php 8.2+Nginx 1.24+Mysql 8.0 购买

经过上面两篇文章的学习,你已经设置完成了几乎所有的配置。

但是接下来,你在根据官方文档进行网站的自定义的时候,发现了某些错误,不知道如何排查修复怎么办?

比如这样的报错。

打开调试开关

在管理员仪表盘中,导航至系统按钮并点击,接着找到调试错误选项。

启用调试错误后,Chevereto将在屏幕上显示错误信息。

通常在生产环境中,建议关闭此选项,因为在出现错误时,所有访问网站的用户都能看到,这可能会显著增加网站的安全风险。

修改页面时报错

我们在进行网站自定义的时候,可能会修改隐私政策、服务条款的页面内容,甚至可能会增加一些额外页面。

但是在4.0.11版本中(我不知道其他版本是不是这样,我只测试了4.0.11版本是这样)修改内容并保存的时候,会出现这个错误

4.0.12版本已经修复此bug
4.0.12版本已经修复此bug
4.0.12版本已经修复此bug

这直接导致我们无法修改隐私政策和其他额外页面的内容。

错误信息表明hash_equals()函数期望第一个参数($known_string)是一个字符串,但实际上传递了一个整数。

解决办法:

我们打开网站目录,找到/app/legacy/routes目录下的dashboard.php文件,定位到1504行,找到这一行代码

if (hash_equals($page[$v] ?? '', $postPage ?? '')) {

修改这一行代码,比如:

if (hash_equals(strval($page[$v] ?? ''), strval($postPage ?? ''))) {

通过使用strval()函数,将变量强制转换为字符串,确保传递给hash_equals()的参数是字符串类型。这应该能够解决你遇到的类型错误问题。

当你解决了这个问题之后,就可以参考下面的官方文档来自定义页面了。

Pages | V4 Admin
Chevereto V4 Admin Manual

包含的标签:

教程, Chevereto

最后更新: March 14, 2024