Chevereto将在11月终止维护V3版本,于是考虑升级为V4,之前有尝试新装V4进行测试,使用DOCKER没有问题,正常运行,但使用安装包安装却无法运行,一直比较忙也没时间去查错。今天抽空看了下日志,把踩的坑记录一下。


升级首先第一步当然是备份网站文件及数据库,这里略过不提,先来说说使用的环境。
我使用的是宝塔LNMP
UBUNTU 22.04 LTS 5.19.2 x86_64
NGINX 1.22
PHP 8.0 (V3使用的是7.4)
mysql mariadb_10.7


备份完了切换至维护模式,然后删除V3站的app/vendor目录,将V4安装包上传至网站根目录并解压。
V4安装包下载地址https://chevereto.com/panel
将站点PHP版本切换至8.0
设置配置文件app/env.php,主要为数据库

<?php

return [
  'CHEVERETO_DB_NAME' => 'chevereto',
  'CHEVERETO_DB_PASS' => 'user_database_password',
  'CHEVERETO_DB_PORT' => '3306',
  'CHEVERETO_DB_TABLE_PREFIX' => 'chv_',
  'CHEVERETO_DB_USER' => 'user_database',
];

登陆服务器SSH至站点app/bin/目录执行CLI升级

sudo -u www ./legacy -C update

执行后会得到数据库升级的消息,打开phpmyadmin在该站SQL执行,然后修改计划任务里的命令就可以了


升级过程中有几个坑,如

1.提示something went wrong
这个应该是宝塔的防跨站设置造成的,在站点设置的“网站目录”那把防跨站的√去掉就好了。

2.升级完后要修改计划任务里运行的命令,因为CLI已经变更为了app/bin/legacy

3.如果服务器有多个版本的PHP,可能计划任务会无法正常运行,需修改linux的PHP版本,具体参考linux更改php版本的方法

4.我在升级后发现LOGO和其他一些图片无法加载,F12后发现地址为一个没怎么使用过的地址,在数据库里搜了一遍,发现 _settings 表里的cdn_url,如果有碰到同样问题可以直接在数据库修改这个,也可以在仪表盘=》外部服务=》CDN那修改。


至此,升级完成。祝各位也能顺利升级。

EJa6L.png