无限星辰工作室-客户无限互联网动力之源
标题:
X3.1调用远程接口失败,请检查您的服务器是否处于内网以及您服务器的防火墙”排查方法
[打印本页]
作者:
crx349
时间:
2014-2-18 14:18
标题:
X3.1调用远程接口失败,请检查您的服务器是否处于内网以及您服务器的防火墙”排查方法
1,首先确定你服务器时间准确,和北京时间误差最好2分钟内,最大不要超过5分钟,时间差过大会导致加密校验失效;
2,确定是是否是在内网测试,内网不支持使用云平台,请换到公网上进行测试;
3,如果是公网,先确定服务器开放的是80端口,目前只支持80端口使用云平台;
4,如果80端口没问题,请检查你云平台的诊断信息,看看云平台接口和漫游端口是否是通的:
如果其他接口全部解析失败的话,那么咨询空间商是否开启了防火墙,联系空间商解决这个问题;
排查方法:
找到source\function\function_filesock.php文件
搜索代码
if(function_exists('curl_init') && $allowcurl) {
复制代码
改为
if(function_exists('curl_init') && function_exists('curl_exec') && $allowcurl) {
复制代码
原因:空间商禁用了curl_exec 函数导致。
5,(1)上一条测试的是站点是否能连到云平台服务器,这一步就要测试云平台是否到站点是通的,
(2)要开通云平台,云平台服务器要连接到你的站点,实现接口通信,必须从云平台的服务器发起请求到站点的 api/manyou/my.php。如果此请求有防火墙阻挡,那么接口调用会失败,无法完成一些服务必须的功能。如果不关闭防火墙,也要设置允许 api/manyou/my.php 不受防火墙拦截。这一点站长可以访问:
www.XXX.com/api/manyou/my.php
看看是否正常,如果不正常的话,请检查服务器文件是否完全,是否有权限,
(3)有的站点服务器设置了跳转等其他功能,即使这个文件能访问,云平台服务器用curl还是访问不到,测这一步的站点最好跟帖留一下域名,我们可以从云平台服务器给你测试一下,并给你回复;
6,如果上面5条都没问题,如果你是Discuz! X2你可以找到"\api\manyou\my.php"文件的第2222行左右的两行代码:
require_once libfile('function/cache');
updatecache(array('plugin', 'setting', 'styles'));
复制代码
修改为:
//require_once libfile('function/cache');
//updatecache(array('plugin', 'setting', 'styles'));
复制代码
如果你是Discuz! X2.5以上含x3.1,可以找到文件"\api\manyou\Service\Server\Cloud.php"注销掉60到64行:
try {
require_once libfile('function/cache');
updatecache(array('plugin', 'setting', 'styles'));
} catch (Exception $e) {
}
复制代码
修改为:
//try {
// require_once libfile('function/cache');
// updatecache(array('plugin', 'setting', 'styles'));
//} catch (Exception $e) {
//}
复制代码
原理:有些站点安装很多插件,不乏一些程序臃肿的插件,而操作云平台时,需要更新服务器的所有缓存,而时间限制是30秒,这样就会导致操作云平台因超时而报这个错误,注销掉既能解决这个问题;
注意:这样操作的用户每次操作完云平台要手动更新一下缓存,否则云平台的菜单可能不更新;
(不推荐注销代码的方式解决此问题,因为同步又会出问题,最好是卸载掉所有的插件来修复此问题,修复之后再按照自己的需求开启插件,当开启某插件而导致云平台又不能使用时,就能确定是哪个插件的问题了)
7,如果上面6个步骤都不能解决问题,请重新覆盖一下最新的程序文件以保证程序的完整性和准确性。
欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://xmspace.net/)
Powered by Discuz! X3.4