IsaacZ 发表于 2023-8-4 12:22:55

Discuz 3.4 升级到 3.5 后 UC “通信失败”

原来 Discuz 3.4(UTF8) 的时候只要设置应用IP为127.0.0.1就会UC通信成功,5月份升级到 3.5后,一直通信失败:


图中 ID 18(原来是13)5月份先升级,8月初又升级的 ID 17。两者共用数据库。


已知:如果应用里面不写IP地址,则应用内通信失败:



如果应用内填写IP地址(127.0.0.1 或者 内网地址 192.168.0.2),则应用内必然通信成功。




做过如下排查努力:


[*]UC中先设置好,再粘贴底部文本框的配置信息到应用的 config_ucenter.php
[*]检查应用 ID 与 UC 中一致
[*]检查 Config_inc.php 的 UC_KEY 一致
[*]检查 uc_server/data/cache/apps.php 中的 authkey 与 上面的 UC-KEY 一致。
[*]检查 uc_client/data/cache/apps.php 中的应用 appid 与 UC 一致。
[*]应用和UC同时设置IP为 127.0.0.1 或者 内网地址 192.168.0.2
[*]检查所有的 data 目录及子目录、api/uc.php权限为777,所有者为 www
[*]检查服务器环境支持 fsockopen
[*]应用中更新缓存、UC中更新缓存
[*]在 phpmyadmin 中清空了 common_syscache 整个表,并用 Tools急诊箱更新了缓存。
[*]UC中删除应用并重新添加
[*]同步了服务器时间
[*]用F12获得“通信失败”对应的script链接:http://www.dianbo.org/uc_server/admin.php?m=app&a=ping&inajax=1&url=https%3A%2F%2Fwww.dianbo.org&ip=192.168.0.2&appid=18&random=1388645138&sid=e17euJ1c6tMrwu5ewIeMXXXXXXXXX,地址栏直接访问它结果为:

[*]根据网上教程(https://blog.csdn.net/iastro/article/details/52398813)在 uc_server/control/admin/app.php 中的
[*]if($status == '1') {
前或后附近插入一个断点:
[*]echo &quot;\$url = $url <br />\n \$status = $status<br />\n&quot;;die('haha');
获取到的 $url 为 https://www.dianbo.org/api/uc.php?code=XXXX ,若直接访问此 $url 则返回值为1,

但直接访问 http://www.dianbo.org/uc_server/admin.php?m=app&a=ping&inajax=1&url=https%3A%2F%2Fwww.dianbo.org&ip=192.168.0.2&appid=18&random=1388645138&sid=e17euJ1c6tMrwu5ewIeMXXXXXXXXX 时,status 却为空:

[*]参考网上教程(https://blog.csdn.net/hubu2006/article/details/22301745),将
[*]<?php echo 1;?>
写入文件 uc2.php,在UC中编辑应用,修改接口文件名称为 uc2.php,仍然通信失败。
网页上说“如果不能通信,则是UC服务端无法通过fsockopen访问客户端,可能是域名解析问题,也可能是填写的IP问题”,但是我的服务端和客户端都在一个服务器上,填写127.0.0.1或192.168.0.2有什么不对呢?




请问我还可以通过哪些方面进行排查呢?




来源:https://www.dismall.com/thread-18559-1-1.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Discuz 3.4 升级到 3.5 后 UC “通信失败”