同步站点信息提示“An unknown error occurred.May be DNS Error.(ERRCODE:1)”的问题排查与解决

原因分析

找到sourcepluginmanyouServiceClientRestful.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

可以看到返回为空,继续追查。
找到sourcefunctionfunction_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)

解决方法

找到sourcepluginmanyouServiceClientRestful.php文件,搜索代码

$result = $this->_fsockopen($url, 0, $data, '', false, $ip, 5);

改为下面代码

$result = $this->_fsockopen($url, 0, $data, '', false, $ip, 30);

然后到站点后台诊断工具下,点击同步站点信息,提示同步成功。
ok,问题解决,把超时时间设置大一些即可。

标签: Discuz

仅有一条评论

  1. 小贝 小贝

    帮到我了哦,谢谢!转载了!

添加新评论