DiscuxX3.4成功升级到X3.5经验分享
DiscuxX3.4成功升级到X3.5经验分享从今年2月开始升级DiscuzX3.4,到现在出现过多次错误,大版本的升级,难度比较大,由discuz2.5到discuzX3.5,这次升级是最难的一次。
一、我的环境:Apache/2.4.6 (CentOS) PHP/7.4.33 /mysql 5.742
二、准备工具:1、下载最新的discuzx3.5完整版,下载升级程序2个文件。https://www.dismall.com/thread-14660-1-1.html
2、数据库工具,phpmyadmin。
3、数据库重建两个文件。论坛的数据库表install.sql,在下载dZx3.5完整安装包中Upload\install\data\install.sql。ucenter数据库表uc.sql。在下载完整安装包中Upload\uc_server\install\uc.sql。
4、tools工具箱。
三、升级前准备
1,进入dzX3.4后台插件,卸载所有插件,包括QQ互联,我的马甲,微信登录等(升级成功后可以重新安装)。站长---数据库,进行数据库校验,修复数据缺少的表和字段。把新增字段的数据表用phpmyadmin工具在相应的数据 表中删除(注意不要删错了,此处有一定的风险)。修复数据库与使数据库纯净,会减少升级中错误机会。
2、在后台站长--数据库-备份论坛所有数据。备份论坛安装文件。如原来的论坛文件夹为BBS,备份后为BBS1。备份数据库文件所有文件夹。如ultrax备份后为ultrax1。
3、先用bbs1文件夹与数据库文件夹ultrax1试试有没有什么问题如果出现错误,删掉数据库文件夹如ultrax1,,重新复制原来的数据库文件夹命名为ultrax2,不要用ultrax1,减少出错机会。注意要修改3个配置文件。以dzx3.4论坛文件夹BBS1为例。
1、bbs1/uc_server/data/config.inc.php(ucenter配置文件)
2、bbs1/config/config_global.php(论坛全局配置文件)
$_config['db']['dbuser'] = '###';(改为数据 库的用户名)
$_config['db']['dbpw'] = '*****';(数据 库密码)
$_config['db']['dbname'] = 'ultrax1';
与config_ucenter.php(论坛与ucenter配置文件)。
define('UC_DBPW', '****');
define('UC_DBNAME', 'ultrax1');
define('UC_DBTABLEPRE','`ultrax1`.pre_ucenter_');
这一步非常重要,数据 库名称不正确,就会报数据库错误或数据 库未连接。
四,升级过程
1、按照官网上升级程序,先升级ucenter,按官网升级说明,把安装包中的uc_server与uc_client两个文件夹复制到论坛文件夹BBS1中,选择替换。
2、复制升级ucenter文件update_ucenter_adult.php到bbs1/uc_server/install/中,然后执行升级程序。
http://论坛网址/bbs1/uc_server/install/update_ucenter_adult.php
升级顺利会出现一个错误,升级Ucenter 7.0时显示数据库members表里缺少email这个字段
:标准Ucenter必定存在email字段的,此提示一般是以前某些修改导致email字段不存在或未被设置为索引,进入数据表(使用PhpMyAdmin找到pre_ucenter_members表点结构就看到email字段选中,在更多里找到为索引点击一下就行了,然后刷新再升级。直到出现升级成功。
3、如果升级过程出现数据表错误,可在选择重建数据表。打开ucenter数据库重建表文件uc.sql,查找出现错误表的地方,比如:members表出错。复制下面执行语句。
DROP TABLE IF EXISTS uc_members;
CREATE TABLE uc_members (
uidmediumint(8) unsigned NOT NULL AUTO_INCREMENT,
usernamechar(15) NOT NULL DEFAULT '',
`password`varchar(255) NOT NULL DEFAULT '',
`secmobicc`varchar(3) NOT NULL DEFAULT '',
`secmobile`varchar(12) NOT NULL DEFAULT '',
emailvarchar(255) NOT NULL DEFAULT '',
myidchar(30)NOT NULL DEFAULT '',
myidkeychar(16) NOT NULL DEFAULT '',
regipvarchar(45) NOT NULL DEFAULT '',
regdateint(10) unsigned NOT NULL DEFAULT '0',
lastloginipint(10) NOT NULL DEFAULT '0',
lastlogintimeint(10) unsigned NOT NULL DEFAULT '0',
saltvarchar(20) NOT NULL DEFAULT '',
secqueschar(8) NOT NULL default '',
PRIMARYKEY(uid),
UNIQUE KEYusername(username),
KEYemail(email(40)),
KEY secmobile(`secmobile`, `secmobicc`)
) ENGINE=InnoDB;
进入phpmyadmin中,选择ultrax1数据库,点左边sql用CTRL+V粘贴,然后点执行。重建成功后,刷新升级程序。
4、如果发现重新不能继续,可删除数据库文件夹ultrax1,重新复制DZx3.4数据 库文件夹重命名为ultrax2,注意修改3个配置文件的数据库(看三,3项,加下载线的部分)
5、ucneter升级到1.7后,就可以升级论坛到x3.5,按官网要求,复制DX3.5文件到论坛文件夹bbs1中,(保留data, config 和 uc_server与uc_client,其他可以删除),复制升级程序 update_adult.php 上传bbs1 所在目录下 install 目录,并删除 Discuz! 所在目录下 data 目录的 update.lock 文件。
然后执行升级。论坛网址/install/update_adult.php。直到出现升级成功。
6、升级过程如果出现某个表错误。可以用重建该表。
打开数据库重建表文件install.sql。查找出现错误表的地方,复制相应执行语句,到phpmyadmin中sql去执行。
7、升级成功后,出现论坛关闭,管理员无法登录。论坛关闭可以用tools工具箱来打开。但管理员登录一起提示登录失败。并且登录时不出现验证码。
成功升级到DZx3.5管理员登录 失败,解决方法:
1,按照官网上全新安装 DZx3.5方法,安装成功后,复制3个配置文件到BBS1,注意修改三个配置文件,尤其是数据名称和'UC_DBNAME', 'ultrax1');
define('UC_DBTABLEPRE', '`ultrax1`.pre_ucenter_');
经验之谈,希望大家在升级的路上顺利,祝大家升级成功。如有错误的地方请指正。
页:
[1]