推荐应用
“调用远程接口失败,请检查您的服务器是否处于内网以及您服务器的防火墙”排查方法
发布于 2013-03-01
很多时候使用discuz云平台都会遇到“调用远程接口失败,请检查您的服务器是否处于内网以及您服务器的防火墙”的问题,下面我们就说下具体详细排查方法。
1、首先确定你服务器时间准确,和北京时间误差最好2分钟内,最大不要超过5分钟,时间差过大会导致加密校验失效;
2、确定是是否是在内网测试,内网不支持使用云平台,请换到公网上进行测试;
3、如果是公网,先确定服务器开放的是80端口,目前只支持80端口使用云平台;
4、如果80端口没问题,请检查你云平台的诊断信息,看看云平台接口和漫游端口是否是通的:
如果其他接口全部解析失败的话,那么咨询空间商是否开启了防火墙,联系空间商解决这个问题;
(如果是Discuz! X2.5,可以参照帖子X2.5诊断工具里所有接口全部请求失败问题的排查方法 测试这一步)
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行左右的两行代码:
注意:这样操作的用户每次操作完云平台要手动更新一下缓存,否则云平台的菜单可能不更新;
(不推荐注销代码的方式解决此问题,因为同步又会出问题,最好是卸载掉所有的插件来修复此问题,修复之后再按照自己的需求开启插件,当开启某插件而导致云平台又不能使用时,就能确定是哪个插件的问题了)
7、如果上面6个步骤都不能解决问题,请重新覆盖一下最新的程序文件以保证程序的完整性和准确性。
1、首先确定你服务器时间准确,和北京时间误差最好2分钟内,最大不要超过5分钟,时间差过大会导致加密校验失效;
2、确定是是否是在内网测试,内网不支持使用云平台,请换到公网上进行测试;
3、如果是公网,先确定服务器开放的是80端口,目前只支持80端口使用云平台;
4、如果80端口没问题,请检查你云平台的诊断信息,看看云平台接口和漫游端口是否是通的:
如果其他接口全部解析失败的话,那么咨询空间商是否开启了防火墙,联系空间商解决这个问题;
(如果是Discuz! X2.5,可以参照帖子X2.5诊断工具里所有接口全部请求失败问题的排查方法 测试这一步)
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,可以找到文件"\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个步骤都不能解决问题,请重新覆盖一下最新的程序文件以保证程序的完整性和准确性。



添加微信客服
有偿服务QQ
关注公众号