有的站点UCenter升级完成后仍然提示请先升级 UCenter 到 1.6.0 以上版本的现象,下面分享下UCenter版本号不正确的原因和处理办法,可能有以下的几个文件和处理办法:
一、UCenter 的文件没有上传完整,此时可以重新下载一份 UCenter 的程序(http://download.comsenz.com/UCenter/1.6.0/),重新覆盖程序后重新升级。
二、有可能是 discuz! X 没有访问到正确的 UCenter:
1)请检查您的目录下有几个 UCenter 的目录,例如:uc_server、ucenter、uc 等目录名称。
2)如果有多个 UCenter 的目录,去数据库中确认下哪个 UCenter 的数据库的中的 member 表有较多的数据,表名可能叫做 pre_ucenter_members、uc_members、cdb_uc_members 等,然后记下这个表所在的数据库名和表的前缀。
3)如果有多个 UCenter 的目录,请逐一检查 UCenter 目录下的 data/config.inc.php 文件中的数据库的库名和表前缀,看哪个目录的 config 信息与在第 2 步记下的数据库名和表的前缀一致,然后记下 UCenter 的目录名称,这个 UCenter 才是您真正要用的 UCenter。
4)最后去 Discuz! X 的 config/config_ucenter.php 文件中检查下 UC_API 的地址和您记下的 UCenter 地址、数据库名、表前缀是否一致,如不一致请修改为前面记下的信息,然后通过 Discuz! X 后台重新访问 UCenter 即可。
三、UCenter 1.6.0 的版本号是保存在 setting 表中的,在升级过程中会执行如下 SQL 语句更新版本号:
- REPLACE INTO uc_settings (k, v) VALUES (‘version‘,‘1.6.0‘);
复制代码
如果版本号不对的话,可以在后台--站长--数据库--升级中执行上面语句,手动更新 UCenter 的版本即可。
四、如果你确定已经正常升级UC到1.6版本,可以通过修改升级文件代码解决。
打开updata.php文件,查找代码
- if(version_compare($version, ‘1.5.2‘) <= 0) {
复制代码
将代码修改为:
- if(version_compare($version, ‘1.5.2‘) >= 0) {
复制代码
这样可以跳过检查了
五、可直接访问http://你的网址/install/update.php?step=prepare 升级
根据上面四种方法来检查和排除,应该就可以解决您的UCenter版本号不对的问题了,如果有更好的方法欢迎大家分享