首页 >后端开发 >php教程 >DISCUZ 和 UCenter 在线下是同步成功的,可是搬到线上就通讯失败了……

DISCUZ 和 UCenter 在线下是同步成功的,可是搬到线上就通讯失败了……

WBOY
WBOY原创
2016-06-23 13:15:041120浏览

在线下显示是同步成功:



可是一传到线上就通讯失败了……



数据库应该是完全导入了的,没有遗漏


KEY和ID已确定一致,并且换了一个KEY试过了,还是不行……

主站(www)中的 config.inc.php 源码:

<?phpdefine('UC_CONNECT', 'mysql');define('UC_DBHOST', 'localhost');define('UC_DBUSER', 'bbs');define('UC_DBPW', 'pwd');define('UC_DBNAME', 'mcmod');define('UC_DBCHARSET', 'utf8');define('UC_DBTABLEPRE', '`bbs`.uc_');define('UC_DBCONNECT', '0');define('UC_KEY', 'Xd0eTcjmM2iQAVIKkAOj72FJ8Pua1nX6e1CYVBA');define('UC_API', 'http://bbs.xxx.com/ucenter');define('UC_CHARSET', 'utf-8');define('UC_IP', '');define('UC_APPID', '2');define('UC_PPP', '20');


回复讨论(解决方案)

你看一下,是不是缓存 。  ucenter  好像也有一个 DB 配制, 也有可能 是这里的配制没有修改好

查看 \uc_server\data\cache下的apps.php文件,先备份,再删除,登录一下,若是不行,就手动修改,好像主站和通讯站都有这个apps.php,你都看一下

查看 \uc_server\data\cache下的apps.php文件,先备份,再删除,登录一下,若是不行,就手动修改,好像主站和通讯站都有这个apps.php,你都看一下



看了一下 \uc_server\data\cache 里并没有 apps.php 这个文件..
但是在 uc_client\data\cache 里发现了它,漏网之鱼……里面还是本地的IP,我重新修改成域名上传以后,依然通信失败……

你看一下,是不是缓存 。  ucenter  好像也有一个 DB 配制, 也有可能 是这里的配制没有修改好



已尝试在控制面板里更新 UCenter 的缓存,依然无效……

help..me..... (无力地..)

Discuz!与UCenter通信失败
请检查以下内容:
1、"应用的 URL"是否正确,能否访问到论坛。
2、"应用的物理路径",这一项默认为空,但是倘若其他问题都排除了,可以尝试输入绝对路径,比如根目录下是Discuz!程序,/uc目录下是UCenter,那么可以在此项处填入"../"(不含引号);对于某些主机,此法有效。
3、Discuz 后台的"UCenter 访问地址"。如果您的 UCenter 访问地址发生了改变,请修改此项直到可以通过此地址访问到 UCenter ,如果还不行请按提示使用IP方式。
4、"通信密钥"是否一致。这个一般是导致 UCenter 与 Discuz 通信失败的主要原因。这个密钥是可以自己随便写的,但要保证 UCenter 与 Discuz 的密钥一致。
5、"ID"。查看 UCenter 后台的应用 ID 是否与 Discuz 后台的 ID 一致,如不一致,请修改 Discuz 后台的"UCenter 应用 ID"。这个也是导致 UCenter 与 Discuz 通信失败的主要原因。

我用了加速乐。。。 不过我看了加速乐官方的这个帖子:

http://bbs.jiasule.com/thread-8486-1-1.html

之前的确没有填写IP地址,昨天填写了,还是不行…… 

刚才把论坛改成回源了,域名解析也改成服务器IP了,还是显示通信失败……

另外 。。 服务器禁ping对通信有影响吗?

给 control\admin\app.php 页面的js输出动了下刀子... 哪位能从这些输出的信息中看出有什么问题吗?

给 control\admin\app.php 页面的js输出动了下刀子... 哪位能从这些输出的信息中看出有什么问题吗?



define('UC_APPID', '2');


你appid不对吧


给 control\admin\app.php 页面的js输出动了下刀子... 哪位能从这些输出的信息中看出有什么问题吗?



define('UC_APPID', '2');


你appid不对吧

appid = 2 的那个是主站...

上面发的那张图是论坛的 appid 是 = 1 没问题……

QAQ 求帮助

help.... 尝试把 define('UC_CONNECT', 'mysql'); 改成 define('UC_CONNECT', ''); 依然不行

看通讯那块的代码,调试入底层,写日志记录变量的值
比较本地和线上打印出的变量的差别

我曾经碰到过一次通讯失败,那次问题是处在缓存文件 uc_client/data/cache/apps.php
dz在发送请求的时候会先从该缓存文件中拿到所有加入同步通信的应用信息,如果只有自己则不发送通知信息。
而这里没有随着ucenter的更新而更新,只有自己dz的信息,所以没有对其他的系统发起通知,无论我如何更新dz以及ucenter的缓存,这里都没有变动,而自开发系统那边的apps
当然可能你的问题不一样,你可以死马当活马医看看

建议线上重新添加一遍应用,然后复制UC配置到各自的config覆盖下

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn