同步站点信息提示“An unknown error occurred.May be DNS Error.(ERRCODE:1)”的问题排查与解决
原因分析
找到source\plugin\manyou\Service\Client\Restful.php文件,搜索代码
$result = $this->_postRequest($url, $postString);
在这句下面添加代码
writelog('debug', $url . '-' . $postString . '-'. var_export($result, true));
然后到站点后台诊断工具下,点击同步站点信息,查看data/log下的日志文件,内容如下:
http://api.discuz.qq.com/site_cloud.php-format=PHP&method=site.sync&************-NULL
可以看到返回为空,继续追查。
找到source\function\function_filesock.php文件,搜索代码
curl_close($ch);
在这句下面添加代码
writelog('debug', $url . '-' . $errno . '-' . var_export($data, true));
然后到站点后台诊断工具下,点击同步站点信息,查看data/log下的日志文件,内容如下:
<?PHP exit;?> http://api.discuz.qq.com/site_cloud.php-28-NULL
curl错误号28表示超时,接口请求超时。
CURLE_OPERATION_TIMEDOUT (28)
解决方法
找到source\plugin\manyou\Service\Client\Restful.php文件,搜索代码
$result = $this->_fsockopen($url, 0, $data, '', false, $ip, 5);
改为下面代码
$result = $this->_fsockopen($url, 0, $data, '', false, $ip, 30);
然后到站点后台诊断工具下,点击同步站点信息,提示同步成功。
ok,问题解决,把超时时间设置大一些即可。