admin 发表于 2025-8-8 15:10:15

Discuz! 3.4 升级到 3.5 详细教程

Discuz! 3.4 升级到 3.5 详细教程
一、升级前准备工作
1.1 系统环境检查
Discuz! 3.5 对服务器环境有明确要求,升级前需确保环境符合以下标准,避免因兼容性问题导致升级失败:


软件名称最低要求推荐版本其他注意事项
PHP≥ 5.6.07.4 - 8.2需启用 XML 扩展、JSON 扩展、GD 扩展(≥1.0)
MySQL≥ 5.5.38.0若使用 MariaDB,推荐版本 ≥10.2;需支持 InnoDB 引擎
服务器配置至少 1 核 CPU、2G 内存2 核 CPU、4G 内存数据量大时建议升级服务器配置,避免升级超时

注意:当 MySQL < 5.7 或 MariaDB < 10.2 时,InnoDB 性能会显著下降,生产环境务必升级数据库至推荐版本。


1.2 数据与文件备份
升级操作不可逆,必须完整备份以下内容,建议采用 “多重备份” 策略(如本地备份 + 服务器快照):


[*]数据库备份:通过主机管理面板(如宝塔)或 PhpMyAdmin 导出数据库,确保包含 UCenter 数据库(默认与论坛数据库分离)。
[*]文件备份:通过 FTP 或文件管理器下载网站所有文件,重点保留 config、data、uc_server 目录及自定义插件 / 模板文件。
[*]云服务器用户:建议创建服务器快照,可快速回滚系统状态。

1.3 中间版本确认
Discuz! 3.4 升级到 3.5 无需额外中间版本,但需确保当前版本为 Discuz! 3.4 正式版(版本号可在后台 “站长 - 版本信息” 中查看)。若当前版本低于 3.4,需先升级至 3.4(3.4 升级教程)。

二、升级 UCenter(核心步骤)
Discuz! 3.5 需搭配 UCenter 1.7.0,需先将旧版 UCenter 1.6 升级至 1.7.0:

2.1 下载升级文件
从 Discuz! 官方发布页 下载 Discuz! X3.5 正式版压缩包(如 Discuz_X3.5_SC_UTF8_20250205.zip),解压后备用。

2.2 处理 UCenter 文件

[*]进入 UCenter 目录:通过 FTP 或文件管理器进入网站根目录下的 uc_server 文件夹(默认路径:/www/wwwroot/论坛域名/uc_server)。
[*]创建备份目录:在 uc_server 内新建 old 文件夹,将除 data 目录外的所有文件 / 文件夹移动到 old 中(保留 .htaccess、.user.ini 等配置文件,避免服务器环境异常)。
[*]上传新版 UCenter:将解压后的 X3.5 压缩包中 upload/uc_server 目录下的所有文件上传到服务器 uc_server 目录,覆盖现有文件(FTP 上传需选择 二进制模式,避免文件损坏)。

2.3 执行 UCenter 升级

[*]准备升级脚本:下载 update_ucenter_adult.php(可从 官方升级教程 获取),上传到 uc_server/install 目录。
[*]删除锁定文件:删除 uc_server/data 目录下的 upgrade.lock 文件(若存在),否则升级脚本无法运行。
[*]运行升级程序:在浏览器中访问 http://论坛域名/uc_server/install/update_ucenter_adult.php,根据页面提示完成升级(升级时间取决于数据量,大型论坛可能需要 10-30 分钟,请勿中途关闭页面)。

三、升级 Discuz! 主程序
3.1 处理主程序文件

[*]备份核心目录:返回网站根目录,将除 data、config 目录及 uc_server 文件夹外的所有文件 / 文件夹移动到根目录下的 old 文件夹(保留 .htaccess 等服务器配置文件)。
[*]恢复自定义插件 / 模板:将 old/source/plugin 目录下除 default 外的文件夹(用户自定义插件)移动到 source/plugin;将 old/template 目录下除 default 外的文件夹(用户自定义模板)移动到 template,确保个性化功能不丢失。
[*]上传新版主程序:将 X3.5 压缩包中 upload 目录下的所有文件上传到网站根目录,覆盖现有文件(同样使用二进制模式上传)。

3.2 执行主程序升级

[*]准备升级脚本:下载 update_adult.php(同 UCenter 升级脚本来源),上传到网站根目录的 install 目录。
[*]删除锁定文件:删除 data 目录下的 update.lock 文件(若存在)。
[*]运行升级程序:在浏览器中访问 http://论坛域名/install/update_adult.php,跟随页面指引完成升级(此步骤会更新数据库结构,耗时较长,需耐心等待)。















四、升级后配置与检查
4.1 基础配置

[*]启用插件与模板:进入后台 “应用 - 插件”,手动启用升级前的插件,逐一测试功能是否正常(重点检查支付、用户登录相关插件,避免影响核心功能)。
[*]更新系统缓存:进入后台 “工具 - 更新缓存”,勾选所有缓存类型并提交,确保新功能和样式生效。
[*]检查功能模块:进入后台 “全局 - 功能模块”,关闭不需要的模块(如门户、群组),优化系统资源占用。

4.2 特殊场景处理

[*]GBK 编码用户:升级后系统会自动转换为 UTF8 编码,用户安全问答会被清空,需提前通过公告通知用户登录时无需输入安全提问。
[*]CDN 用户:若升级后用户 IP 显示异常,需在后台 “全局 - CDN 设置” 中配置真实 IP 获取方式(参考 官方教程)。
[*]PHP 版本切换:UCenter 升级阶段需使用 PHP ≤7.4,主程序升级完成后可在服务器面板切换至 PHP 8.0+(提升性能)。

五、常见问题与解决方案
5.1 UCenter 升级失败

[*]错误提示:fopen(../data/logs/X3.5_upgrade_ucenter.php): failed to open stream
解决方案:给 uc_server/data/logs 目录赋予 755 或 777 权限(通过文件管理器或命令 chmod -R 755 uc_server/data/logs)。
[*]错误提示:pre_ucenter_members 表缺少 email 字段
解决方案:通过 PhpMyAdmin 进入数据库,将 pre_ucenter_members 表的 email 字段设为索引(具体操作:进入表结构,找到 email 字段,勾选 “索引” 并保存)。

若出现上述错误,修改文件 "update_adult.php"有“email”的相关地方后,尝试重新升级(本站的处理办法)。


5.2 主程序升级后异常

[*]网站缓慢:若使用 MySQL 5.5 或 MariaDB 10.1,需升级数据库至 MySQL ≥5.7 或 MariaDB ≥10.2。
[*]插件功能失效:部分旧插件可能不兼容 PHP8,需联系插件作者获取更新版本,或替换为 支持 X3.5 的插件。
[*]升级后提示 “升级数据”:进入后台 “全局 - 站点关闭”,关闭站点后重新开启,清除浏览器缓存即可。






若出现上述错误,在管理中心数据检查内修复(本站的处理办法)。

六、总结
Discuz! 3.4 升级到 3.5 需严格遵循 “备份 - 升级 UCenter - 升级主程序 - 测试” 流程,重点关注系统环境兼容性和数据安全。升级后建议观察 1-2 天,确认功能正常、性能稳定后再全面开放站点。如有复杂问题,可参考 官方升级文档 。





页: [1]
查看完整版本: Discuz! 3.4 升级到 3.5 详细教程