Discuz! X3.4 升级到 Discuz! X3.5 的教程和程序
[md]## **暂时不建议普通用户下载本分支代码,暂时不建议任何对生产站点的升级尝试,对生产站点升级前请假设在任何时间节点(含升级完成后)遇到的任何问题的解决方案均为恢复升级前的数据库备份并回退老版本!**
### **简介**
Discuz! X3.4 升级到 Discuz! X3.5 的升级程序及其他相关资源项目 **Dev分支**
### **声明**
您可以 Fork 本站代码,但未经许可 **禁止** 在本产品的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于 **重新分发**
本软件及所附带的文件是作为 **不提供任何明确的或隐含的赔偿或担保的形式** 提供的。用户出于 **自愿** 而使用本软件,您必须了解 **使用本软件的风险** ,在尚未购买产品技术服务之前,我们 **不承诺提供任何形式的技术支持、使用担保** ,也 **不承担任何因使用本软件而产生问题的相关责任** 。
一旦您开始安装本产品( **此处以及本协议内的安装,应被解释为通过任何方式(包括但不限于下载、执行、使用、阅读或更改源代码等)对本软件的任何组成部分进行的任何行为** ),即被视为 **完全理解并接受** **[授权协议](https://gitee.com/ComsenzDiscuz/ ... /readme/license.txt)** 内 **所包含的各项条款** 。
### **相关网站**
[Discuz! 官方站](http://www.discuz.net/)
### **感谢 Discuz! 开源贡献者**
[Click Here To See Them](https://gitee.com/ComsenzDiscuz/DiscuzX/contributors?ref=master)
### **升级方法**
#### 从 Discuz! X3.2 - X3.4 或其他基于此版本开发的未进行数据库结构变更的修改版本进行升级的升级流程
1. **备份数据库和程序文件,请不要忘记备份 UCenter 数据库和程序文件。**
2. 进入您的 UCenter 所在目录(默认为 论坛根目录/uc_server),建立文件夹 old,将 UCenter 目录下除 data 目录以外的其他文件夹移动进入 old 目录中。如移动文件中存在包括但不限于 .htaccess 或 .user.ini 等的网站配置文件,请不要移动。
3. 上传 UCenter 1.7.0 程序(压缩包中 upload/uc_server 目录中的文件), 如上传时候提示覆盖目录,请选择 **“是”**。
4. 上传 update_ucenter_adult.php 到 UCenter 所在目录(默认为 uc_server )下的 install 目录,并删除 UCenter 所在目录下 data 目录的 update.lock 文件。
5. 访问 UCenter 所在目录下 install 目录下的 update_ucenter_adult.php 并参照提示进行升级即可。升级时间随着数据的大小和服务器性能而变。
6. 将除 data, config 目录,和 UCenter 所在目录(默认为 uc_server,如果该目录不在论坛根目录下的话可排除此项)以外的其他文件夹移动进入 old 目录中。如移动文件中存在包括但不限于 .htaccess 或 .user.ini 等的网站配置文件,请不要移动。
7. 将 old/source/plugin 和 old/template 目录下除 default 以外的目录,移动回 source 和 template 目录下面(也可在上一步移动文件时,直接在原位置保留这部分文件)。
8. 上传 Discuz! X3.5 程序(压缩包中 upload 目录中的文件), 如上传时候提示覆盖目录,请选择 **“是”**。
9. 上传 update_adult.php 到 Discuz! 所在目录下 install 目录,并删除 Discuz! 所在目录下 data 目录的 update.lock 文件。
10. 访问 Discuz! 所在目录下 install 目录下的 update_adult.php 并参照提示进行升级即可。升级时间随着数据的大小和服务器性能而变。
#### 从 Discuz! X3.1 或更低版本的 Discuz! X 进行升级的升级流程
1. **备份数据库和程序文件,请不要忘记备份 UCenter 数据库和程序文件。**
2. 建立文件夹 old,除 data, config, source/plugin, template, uc_server 目录以外的其他文件夹移动进入 old 目录中。如移动文件中存在包括但不限于 .htaccess 或 .user.ini 等的网站配置文件,请不要移动。
3. 上传 Discuz! X3.4 程序(压缩包中 upload 目录中的文件), 如上传时候提示覆盖目录,请选择 **“是”**。
4. 上传安装包 utility 目录中的 update.php 到 Discuz! 所在目录下 install 目录,并删除 Discuz! 所在目录下 data 目录的 update.lock 文件。
5. 访问 Discuz! 所在目录下 install 目录下的 update.php 并参照提示进行升级即可。升级时间随着数据的大小和服务器性能而变。
6. 后续流程同 “从 Discuz! X3.2 - X3.4 或其他基于此版本开发的未进行数据库结构变更的修改版本进行升级的升级流程”。
#### 从 Discuz! 7.2 、 UCenter Home 2.0 、 SupeSite 7.5 进行升级的升级流程
1. **备份数据库和程序文件,请不要忘记备份 UCenter 数据库和程序文件。**
2. 请参考安装包 utility 目录中的 convert 目录提供的升级程序,将对应程序转换到 Discuz! X2.0。
3. 后续流程同 “从 Discuz! X3.1 或更低版本的 Discuz! X 进行升级的升级流程”。
#### 从 Discuz! 7.1 或更低版本 、 UCenter Home 1.5 或更低版本 、 SupeSite 7.0 或更低版本进行升级的升级流程
1. **备份数据库和程序文件,请不要忘记备份 UCenter 数据库和程序文件(如有)。**
2. 请参考对应版本的升级教程升级到 Discuz! 7.2 、 UCenter Home 2.0 、 SupeSite 7.5 ,可能需要进行多次升级,升级时间随着数据的大小和服务器性能而变。**建议每次升级完成后均备份数据库和程序文件,备份数据时请不要忘记备份 UCenter 数据库和程序文件(如有)。**
3. 后续流程同 “从 Discuz! 7.2 、 UCenter Home 2.0 、 SupeSite 7.5 进行升级的升级流程”。
### **升级注意事项**
1. **请在升级之前做好站点全量数据(含数据库、文件)的备份操作,并小心操作。**
2. 由于 UCenter 1.7.0 更新了数据库编码,对于您当前数据库内不支持 utf8mb4_unicode_ci 编码的用户名,UCenter 程序会将用户重命名为 15 位随机字符,请您自行在升级成功后在 UCenter 后台查询用户更名日志和通知日志,保证更名通知已经成功下发到各应用后再进行应用升级操作(对于 UCenter 对接其他非 Discuz! X 系统的站点,请确认应用正确实现了 UCenter 通知改名接口。),并在升级完成后通过站点公告、电子邮件、手机短信等多种方式手动通知此类用户通过更名卡等方式自行修改用户名。如果需要通过更名卡方式修改用户名的站点,请在转换完成后手动在后台配置道具中心的更名卡,以支持上述用户自助改名。
3. 由于 UCenter 1.7.0 更新了数据库编码,为了防止安全提问内的中文影响用户登录,因此将为您清空安全提问,请将此情况如实告知用户,并要求用户在登录时请不要输入安全提问。如您希望自行编写兼容代码,请自行在后续流程选择不清空用户的安全提问。
4. 由于 UCenter 1.7.0 更新了数据库编码,对于极个别采用非标准字符集用作密码的账号可能会出现密码错误的情况,遇到此情况请引导用户选择找回密码并按提示操作找回密码,重新设置密码后即可重新登录。
5. 由于 Discuz! X3.5 更新了 IP 黑名单存储方式,因此对于系统内当前批量封禁的 IP 地址,只支持 IPv4 地址规则,且地址掩码为 8 的整数倍且不大于 32 的存量数据,数据库内原有数据将自动删除。建议您在升级前导出原规则,如有需要请在升级后按新系统规则重新配置。
6. 由于 Discuz! X3.5 对 Session 、 IP 黑名单功能进行了优化,此类优化由于依赖部分高级特性,因此不支持除 Redis 外的其它内存缓存库。因此如果您的站点流量较大,建议您卸载原有内存缓存库,更换内存缓存库为 Redis ,这样可以最大程度的优化您站点的运行速度,并且不依赖数据库内的 HEAP 表。
7. 由于 Discuz! X3.5 对站点功能开关功能进行了优化,升级完成后将为您打开站点所有功能,请在升级完成后自行评估您站点运营具体需要开启的功能,并根据站点运营需求关闭不需要的功能。
8. 由于 Discuz! X3.5 更新了数据库编码和默认模板,升级程序会将程序数据表和插件数据表转换至 utf8mb4 ,并试图对您的插件文件进行转码,同时在升级完成后将关闭所有非系统插件并恢复默认风格。请您在升级完成后对您的插件进行验证,对于多数插件、模板而言,在转换之后可在 utf8mb4 环境下继续运行或进行少量改造后继续运行,少量插件、模板可能需要自行对文件做转码,甚至进行一定程度的改造才能够正常在 Discuz! X3.5 上运行。
9. **请不要重复执行升级程序,重复执行可能导致未知的问题,如遇升级出错请不要关闭页面,尝试根据提示解决后刷新继续,如无法实现请恢复备份重新开始升级。**
### **其他相关事项**
1. **请务必在升级之前备份数据库和程序文件,否则可能对您的站点带来不可逆的严重伤害,请务必注意。**
2. **请提前准备足够的硬盘空间和时间用于升级,推荐 UTF-8 编码版本对每 1GB 数据库预留 2-3GB 空闲磁盘空间和 1-2 小时升级时间预留,对于其他编码版本推荐在上述基础上增加 1-2 倍的空闲磁盘空间和升级时间预留,对于安装了大量插件或进行了大量二次开发的站点推荐在上述基础上增加 1-2 倍的空闲磁盘空间和升级时间预留。**
3. **对于超大数据库站点,数据库升级可能因超时而失败,请调整 PHP 的超时时间后,根据 [https://gitee.com/oldhuhu/Discuz ... 20c7e88e11c6c87103d](https://gitee.com/oldhuhu/Discuz ... 20c7e88e11c6c87103d) 调整 MySQL 超时时间,需要注意的是此功能需要 MySQL 的 SUPER privilege 权限。**
4. **请务必在升级之前检查 UCenter 到各个应用的通信是否正常,并且请确认对接其他非 Discuz! X 系统的应用正确实现了 UCenter 通知改名接口,如果上述两项未实现,请自行调试通信和实现通知改名接口,否则可能导致 UCenter 升级无法正确完成。**
5. **建议中大型、超大型站点或二次开发、第三方插件模板较多的站点进行一次或多次本地升级演练,并准备足够可行的回退方案和回退时间,以免升级时因意外导致升级失败且无法按时回退导致的问题。**
6. **本程序不支持含有数据库从服务器的站点和含有数据库分布部署站点升级,如您是含有数据库从服务器的站点请暂时通过配置文件屏蔽从服务器,如您是含有数据库分布部署站点请通过脚本手动升级。**
### **相关资源下载**
1. Discuz! 和 Discuz! X 老版本程序和升级程序下载地址请在 [Discuz! 官方发布板块](http://www.discuz.net/forum-10-1.html) 寻找。
2. UCenter 老版本程序和升级程序下载地址请在 [UCenter-程序发布板块](http://www.discuz.net/forum-151-1.html) 寻找。
3. UCenter Home 老版本程序和升级程序下载地址请在 [UCenter Home-程序发布板块](http://www.discuz.net/forum-149-1.html) 寻找。
4. SupeSite 老版本程序和升级程序下载地址请在 [SS/XS-程序发布板块](http://www.discuz.net/forum-74-1.html) 寻找。
[/md]
### **简介**
Discuz! X3.4 升级到 Discuz! X3.5 的升级程序及其他相关资源项目 **Dev分支**
### **声明**
您可以 Fork 本站代码,但未经许可 **禁止** 在本产品的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于 **重新分发**
本软件及所附带的文件是作为 **不提供任何明确的或隐含的赔偿或担保的形式** 提供的。用户出于 **自愿** 而使用本软件,您必须了解 **使用本软件的风险** ,在尚未购买产品技术服务之前,我们 **不承诺提供任何形式的技术支持、使用担保** ,也 **不承担任何因使用本软件而产生问题的相关责任** 。
一旦您开始安装本产品( **此处以及本协议内的安装,应被解释为通过任何方式(包括但不限于下载、执行、使用、阅读或更改源代码等)对本软件的任何组成部分进行的任何行为** ),即被视为 **完全理解并接受** **[授权协议](https://gitee.com/ComsenzDiscuz/ ... /readme/license.txt)** 内 **所包含的各项条款** 。
### **相关网站**
[Discuz! 官方站](http://www.discuz.net/)
### **感谢 Discuz! 开源贡献者**
[Click Here To See Them](https://gitee.com/ComsenzDiscuz/DiscuzX/contributors?ref=master)
### **升级方法**
#### 从 Discuz! X3.2 - X3.4 或其他基于此版本开发的未进行数据库结构变更的修改版本进行升级的升级流程
1. **备份数据库和程序文件,请不要忘记备份 UCenter 数据库和程序文件。**
2. 进入您的 UCenter 所在目录(默认为 论坛根目录/uc_server),建立文件夹 old,将 UCenter 目录下除 data 目录以外的其他文件夹移动进入 old 目录中。如移动文件中存在包括但不限于 .htaccess 或 .user.ini 等的网站配置文件,请不要移动。
3. 上传 UCenter 1.7.0 程序(压缩包中 upload/uc_server 目录中的文件), 如上传时候提示覆盖目录,请选择 **“是”**。
4. 上传 update_ucenter_adult.php 到 UCenter 所在目录(默认为 uc_server )下的 install 目录,并删除 UCenter 所在目录下 data 目录的 update.lock 文件。
5. 访问 UCenter 所在目录下 install 目录下的 update_ucenter_adult.php 并参照提示进行升级即可。升级时间随着数据的大小和服务器性能而变。
6. 将除 data, config 目录,和 UCenter 所在目录(默认为 uc_server,如果该目录不在论坛根目录下的话可排除此项)以外的其他文件夹移动进入 old 目录中。如移动文件中存在包括但不限于 .htaccess 或 .user.ini 等的网站配置文件,请不要移动。
7. 将 old/source/plugin 和 old/template 目录下除 default 以外的目录,移动回 source 和 template 目录下面(也可在上一步移动文件时,直接在原位置保留这部分文件)。
8. 上传 Discuz! X3.5 程序(压缩包中 upload 目录中的文件), 如上传时候提示覆盖目录,请选择 **“是”**。
9. 上传 update_adult.php 到 Discuz! 所在目录下 install 目录,并删除 Discuz! 所在目录下 data 目录的 update.lock 文件。
10. 访问 Discuz! 所在目录下 install 目录下的 update_adult.php 并参照提示进行升级即可。升级时间随着数据的大小和服务器性能而变。
#### 从 Discuz! X3.1 或更低版本的 Discuz! X 进行升级的升级流程
1. **备份数据库和程序文件,请不要忘记备份 UCenter 数据库和程序文件。**
2. 建立文件夹 old,除 data, config, source/plugin, template, uc_server 目录以外的其他文件夹移动进入 old 目录中。如移动文件中存在包括但不限于 .htaccess 或 .user.ini 等的网站配置文件,请不要移动。
3. 上传 Discuz! X3.4 程序(压缩包中 upload 目录中的文件), 如上传时候提示覆盖目录,请选择 **“是”**。
4. 上传安装包 utility 目录中的 update.php 到 Discuz! 所在目录下 install 目录,并删除 Discuz! 所在目录下 data 目录的 update.lock 文件。
5. 访问 Discuz! 所在目录下 install 目录下的 update.php 并参照提示进行升级即可。升级时间随着数据的大小和服务器性能而变。
6. 后续流程同 “从 Discuz! X3.2 - X3.4 或其他基于此版本开发的未进行数据库结构变更的修改版本进行升级的升级流程”。
#### 从 Discuz! 7.2 、 UCenter Home 2.0 、 SupeSite 7.5 进行升级的升级流程
1. **备份数据库和程序文件,请不要忘记备份 UCenter 数据库和程序文件。**
2. 请参考安装包 utility 目录中的 convert 目录提供的升级程序,将对应程序转换到 Discuz! X2.0。
3. 后续流程同 “从 Discuz! X3.1 或更低版本的 Discuz! X 进行升级的升级流程”。
#### 从 Discuz! 7.1 或更低版本 、 UCenter Home 1.5 或更低版本 、 SupeSite 7.0 或更低版本进行升级的升级流程
1. **备份数据库和程序文件,请不要忘记备份 UCenter 数据库和程序文件(如有)。**
2. 请参考对应版本的升级教程升级到 Discuz! 7.2 、 UCenter Home 2.0 、 SupeSite 7.5 ,可能需要进行多次升级,升级时间随着数据的大小和服务器性能而变。**建议每次升级完成后均备份数据库和程序文件,备份数据时请不要忘记备份 UCenter 数据库和程序文件(如有)。**
3. 后续流程同 “从 Discuz! 7.2 、 UCenter Home 2.0 、 SupeSite 7.5 进行升级的升级流程”。
### **升级注意事项**
1. **请在升级之前做好站点全量数据(含数据库、文件)的备份操作,并小心操作。**
2. 由于 UCenter 1.7.0 更新了数据库编码,对于您当前数据库内不支持 utf8mb4_unicode_ci 编码的用户名,UCenter 程序会将用户重命名为 15 位随机字符,请您自行在升级成功后在 UCenter 后台查询用户更名日志和通知日志,保证更名通知已经成功下发到各应用后再进行应用升级操作(对于 UCenter 对接其他非 Discuz! X 系统的站点,请确认应用正确实现了 UCenter 通知改名接口。),并在升级完成后通过站点公告、电子邮件、手机短信等多种方式手动通知此类用户通过更名卡等方式自行修改用户名。如果需要通过更名卡方式修改用户名的站点,请在转换完成后手动在后台配置道具中心的更名卡,以支持上述用户自助改名。
3. 由于 UCenter 1.7.0 更新了数据库编码,为了防止安全提问内的中文影响用户登录,因此将为您清空安全提问,请将此情况如实告知用户,并要求用户在登录时请不要输入安全提问。如您希望自行编写兼容代码,请自行在后续流程选择不清空用户的安全提问。
4. 由于 UCenter 1.7.0 更新了数据库编码,对于极个别采用非标准字符集用作密码的账号可能会出现密码错误的情况,遇到此情况请引导用户选择找回密码并按提示操作找回密码,重新设置密码后即可重新登录。
5. 由于 Discuz! X3.5 更新了 IP 黑名单存储方式,因此对于系统内当前批量封禁的 IP 地址,只支持 IPv4 地址规则,且地址掩码为 8 的整数倍且不大于 32 的存量数据,数据库内原有数据将自动删除。建议您在升级前导出原规则,如有需要请在升级后按新系统规则重新配置。
6. 由于 Discuz! X3.5 对 Session 、 IP 黑名单功能进行了优化,此类优化由于依赖部分高级特性,因此不支持除 Redis 外的其它内存缓存库。因此如果您的站点流量较大,建议您卸载原有内存缓存库,更换内存缓存库为 Redis ,这样可以最大程度的优化您站点的运行速度,并且不依赖数据库内的 HEAP 表。
7. 由于 Discuz! X3.5 对站点功能开关功能进行了优化,升级完成后将为您打开站点所有功能,请在升级完成后自行评估您站点运营具体需要开启的功能,并根据站点运营需求关闭不需要的功能。
8. 由于 Discuz! X3.5 更新了数据库编码和默认模板,升级程序会将程序数据表和插件数据表转换至 utf8mb4 ,并试图对您的插件文件进行转码,同时在升级完成后将关闭所有非系统插件并恢复默认风格。请您在升级完成后对您的插件进行验证,对于多数插件、模板而言,在转换之后可在 utf8mb4 环境下继续运行或进行少量改造后继续运行,少量插件、模板可能需要自行对文件做转码,甚至进行一定程度的改造才能够正常在 Discuz! X3.5 上运行。
9. **请不要重复执行升级程序,重复执行可能导致未知的问题,如遇升级出错请不要关闭页面,尝试根据提示解决后刷新继续,如无法实现请恢复备份重新开始升级。**
### **其他相关事项**
1. **请务必在升级之前备份数据库和程序文件,否则可能对您的站点带来不可逆的严重伤害,请务必注意。**
2. **请提前准备足够的硬盘空间和时间用于升级,推荐 UTF-8 编码版本对每 1GB 数据库预留 2-3GB 空闲磁盘空间和 1-2 小时升级时间预留,对于其他编码版本推荐在上述基础上增加 1-2 倍的空闲磁盘空间和升级时间预留,对于安装了大量插件或进行了大量二次开发的站点推荐在上述基础上增加 1-2 倍的空闲磁盘空间和升级时间预留。**
3. **对于超大数据库站点,数据库升级可能因超时而失败,请调整 PHP 的超时时间后,根据 [https://gitee.com/oldhuhu/Discuz ... 20c7e88e11c6c87103d](https://gitee.com/oldhuhu/Discuz ... 20c7e88e11c6c87103d) 调整 MySQL 超时时间,需要注意的是此功能需要 MySQL 的 SUPER privilege 权限。**
4. **请务必在升级之前检查 UCenter 到各个应用的通信是否正常,并且请确认对接其他非 Discuz! X 系统的应用正确实现了 UCenter 通知改名接口,如果上述两项未实现,请自行调试通信和实现通知改名接口,否则可能导致 UCenter 升级无法正确完成。**
5. **建议中大型、超大型站点或二次开发、第三方插件模板较多的站点进行一次或多次本地升级演练,并准备足够可行的回退方案和回退时间,以免升级时因意外导致升级失败且无法按时回退导致的问题。**
6. **本程序不支持含有数据库从服务器的站点和含有数据库分布部署站点升级,如您是含有数据库从服务器的站点请暂时通过配置文件屏蔽从服务器,如您是含有数据库分布部署站点请通过脚本手动升级。**
### **相关资源下载**
1. Discuz! 和 Discuz! X 老版本程序和升级程序下载地址请在 [Discuz! 官方发布板块](http://www.discuz.net/forum-10-1.html) 寻找。
2. UCenter 老版本程序和升级程序下载地址请在 [UCenter-程序发布板块](http://www.discuz.net/forum-151-1.html) 寻找。
3. UCenter Home 老版本程序和升级程序下载地址请在 [UCenter Home-程序发布板块](http://www.discuz.net/forum-149-1.html) 寻找。
4. SupeSite 老版本程序和升级程序下载地址请在 [SS/XS-程序发布板块](http://www.discuz.net/forum-74-1.html) 寻找。
[/md]