升级与迁移
在线升级(推荐)
后台左下角会显示当前版本号,点它就能检测新版本并一键升级。整个过程不用碰服务器。
升级前先备份数据库。aaPanel(宝塔)用户在 Database(数据库)→ Backup(备份)点一下就行,几秒钟的事,出问题能救命。
Docker 用户同样可以在后台在线升级,不需要换镜像 —— 程序文件在数据卷里。
手动升级
在线升级失败时才用这个。必须从你当前的版本开始,一个一个往上升,不能跳版本。
每个升级包解压后是这样:
| 内容 | 怎么处理 |
|---|---|
file/ 文件夹 | 里面的文件复制到网站根目录,覆盖同名文件 |
update.sql | 有这个文件才需要执行,见下 |
update.sql 的处理:
- 用编辑器打开,把里面的
__PREFIX__全部替换成你的数据库表前缀(默认是acg_) - 到 phpMyAdmin 或数据库工具里执行这个 SQL
全部升完后,把 config/app.php 里的 version 改成升级后的版本号。
手动升级很容易出错,能用在线升级就别手动。
升级到 3.8.2 须知
3.8.2 有两处和账号安全有关的变化:
- 新增对接白名单 IP。 所有会员都能登记服务器 IP,登记后对接接口只接受从这些 IP 来的余额下单;没登记的账号和 3.8.1 时一样。3.8.1 里开了资金操作二次验证的账号完全不能通过对接接口消费余额,3.8.2 起登记了 IP 就能对接下单。默认主题的会员中心多了「对接白名单」页(在「安全日志」左边),其他主题放在「两步验证」页。需要的数据表在升级时自动创建,不用手动执行 SQL。网站套了 CDN 或反向代理的,先到 网站设置 → 安全设置 配好「IP 获取方式」和「受信代理 IP」,否则会员只能把 CDN 的 IP 加进白名单。详见 对接白名单 IP。
- 后台的会员安全日志只给主管理员看。 会员管理里的「安全日志」按钮,现在只有主管理员账号(安装时创建的那个)能打开,超级管理员、白班、夜班账号点开会提示没有权限。
升级到 3.8.1 须知
3.8.1 加强了账号和登录安全,升级后会有下面几处变化,都是正常的:
- 所有会员要重新登录一次。 为了安全,会员的登录凭证全部重建,原来的登录状态会失效。
- 密码改用更强的哈希保存。 会员和管理员的密码换成更强、也故意算得更慢的哈希,更难被暴力破解。每个账号下次用密码登录时自动转换,不用你做任何事。管理员账号转换的那一次,该账号在其他设备上的后台登录会掉线一次,重新登录即可。
- 后台闲置锁屏默认开启。 管理员 15 分钟没有操作,后台会自动锁屏。时长在 网站设置 → 安全设置 的「后台闲置锁屏」里改,填
0就是关闭。升级本身不会让管理员掉线。 - 数据库改动自动完成。 在线升级会自己处理,不用手动执行 SQL。
升级到 3.8.1 之后,不要再把程序回退到旧版本。 密码已经转换过的账号,在旧版本里无法再用密码登录。
详细说明见 账号与登录安全。
站点搬家
把整个网站搬到另一台服务器:
- 打包源码 —— 整个网站目录打包带走
- 导出数据库 —— 用 phpMyAdmin 或
mysqldump导出 - 在新服务器上按 aaPanel 安装 装好环境(PHP 版本、扩展要对得上)
- 源码解压到新站点根目录,数据库导入
- 改
config/database.php—— 换成新服务器的数据库地址、账号、密码 - 重新配置伪静态和目录权限
搬完打不开,按这个顺序查:
| 检查项 | 说明 |
|---|---|
config/database.php | 数据库连接信息是不是还是旧的 |
| Redis | 旧站如果用了 Redis 存会话,新服务器也得装上,或者把 PHP 的 session 存储改回文件 |
| PHP 扩展 | bcmath 别漏了(aaPanel 自带,手动搭的环境要自己确认) |
| 目录权限 | config、runtime、kernel/Install、assets/cache 要可写 |
| 伪静态 | 新服务器要重新配 |
Docker 换镜像
bash
docker pull ghcr.io/lizhipay/acg-faka:latest
docker stop faka && docker rm faka
docker run -d --name faka -p 80:80 -v acg_data:/data --restart unless-stopped ghcr.io/lizhipay/acg-faka:latest只要 -v acg_data:/data 这个卷名没变,数据、配置、已装的插件全都还在。
升级后出问题
先看网站根目录的 runtime.log,绝大多数问题的真实原因都在里面。
