chevereto图床官方版无损迁移至开心版v4.0.7

软硬通吃 · 2023-04-15 · 253 人浏览

前几天写过一篇文章《chevereto图床从Chevereto-Free升级到v4.0版本》,但升级后发现4.0免费版本的限制实在是太多了,就连logo都没办法自定义。要么降级,要么就找开心版作为替代。

但是在保留原来数据的前提下,安装完开心版v4.0.7之后,陆续发现了多处报错。包括:

  • undefined array key "jpeg"(原因是:我之前上传过jpeg图片,但是开心版4.0.7的代码似乎并不支持jpeg格式)
  • 列表页面显示不出图片(发现前端报错:cannot read properties of undefined (reading 'length') site:chevereto.com)
  • 提示401权限错误(出现了账户无法登录、登录后不能重建统计信息的现象)

这些问题让我一度想放弃,甚至想到直接弃掉chevereto换用其他图床程序。几天之后忽然产生了一个想法,既然用老数据不能直接升级,为啥不新安装一下呢。如果没问题的话,再把老数据迁移过来不就ok了!

于是,新建文件夹、二级域名、数据库,设置伪静态,按照正常流程安装4.0.7开心版之后,总算迎来了好消息,这次没有报错!

接下来,我对比了官方版本和开心版本,发现了两者大概的不同之处

  • 配置文件:开心版本的配置文件 /app/env.php 中增加了 CHEVERETO_ENCRYPTION_KEY 值,而且每次安装,这个值都是变化的(猜测是随机生成的);
  • 数据库:开心版的数据库,部分数据表的字段比官方版的字段少。比如chv_albums表中,官方版本就多了album_cta_enable,album_cta字段,还有其他数据表的结构也略有不同。

既然找到了不同,那就可以在新站的基础上,迁移旧站的数据了。迁移过程如下:

1、先确保新安装的站点是干净的,暂时不要上传任何图片;

2、迁移图片:将老站点根目录下 /images 文件夹下的图片全部复制到新站对应目录下(配置中默认是images文件夹,除非你修改了路径);

3、导出数据库:进入老站的数据库,导出最重要的几个表(假设前缀是chv_):相册chv_albums、分类chv_categories、图片chv_images、统计chv_stats(不重要,可选),若开放了用户注册,还要导出:关注chv_follows、喜欢chv_likes、用户chv_users这几个表。需要注意的有几点

  • 在导出mysql数据的时候,建议使用自定义模式,不要勾选create table语句;
  • 不建议导出chv_settings这个表(我没导出),完全可以在导入成功后自己修改。

4、导入数据库:最最关键的一步!进入新站的数据库,将上述语句导入。导入的时候可能会报错,原因可能会包括:

  • 数据库不一致。解决方案是在安装新的系统时,确保新数据库的版本、编码一定要和旧站相同!
  • 新旧数据表结构不一致。就像上面提到的chv_albums表缺少的字段。这种情况下,需要使用文本编辑软件打开导出的文件,将字段调整为与新数据表一致的结构。(需要特别注意的是:有的字段顺序也会不一致。请务必仔细核对两个数据表,以确保数据无误)
  • 索引冲突。比如导入用户表时,由于新系统已经创建了id=1的管理员用户,所以老数据库里id=1的数据就没办法导入了。解决方案是可以暂时将冲突的数据注释掉,正常导入后,再按照原有的值手动更改。
  • 总之,在导入时,一定要特别细心,因为这是整个迁移过程中最重要最关键的一个步骤!

5、修改salt值:因为salt值决定了整站各相册、图片的路径,所以这个salt值也十分关键。进入chv_settings数据表,找到setting_name是“crypt_salt”的这一行,将新数据表这一行的setting_value和setting_default值,修改为老数据表的值。用sql语句表示就是:

update chv_settings set setting_value = 'xxxxx', setting_default = 'xxxxx' where setting_name = 'crypt_salt';

6、最后,再按照老站的设置,将新站也进行相同的配置即可。到此基本上就完成了迁移。

下面提供的是开心版v4.0.7和v3.20的两个安装包下载地址。注意两个版本要求的php版本是不同的。v4要求php8,v3要求php7

CheveretoChina(开心版v4.0.7) https://itxe.lanzout.com/itD5M0ozrzif

CheveretoChina(开心版v3.20) https://itxe.lanzout.com/iEeQe01mk5kj

如果在安装过程中遇到其他问题,也可以参考我的另一篇文章:《chevereto图床从Chevereto-Free升级到v4.0版本》

最后,还是号召各位童鞋支持正版。开心版本仅供学习交流,请不要用于商业用途,否则后果自担哦~

升级 Chevereto 图床 网站迁移 ngnix 迁移 开心版
京ICP备2023019113号-1 ◎ Theme by Jasmine