分类 代码分析 下的文章

svn如何还原到上一个版本

开发中经常是会遇到还原到上一个版本的问题,每次都需要搜索一番,特整理记录下。

方法:

  1. 先查看当前版本是多少。

    svn up

输出结果如下。

Don@VM_198_11_sles10_64:~/> svn up
版本 32676。
  1. 还原到某个版本,这里以test.php文件为例,还原到历史版本32604。

    svn merge -r 32676:32604 test.php

输出结果如下。

Don@VM_198_11_sles10_64:~/> svn merge -r 32676:32604 test.php 
--- 正在反向合并 r32676,到 “test.php”:
U    test.php
  1. 查看当前修改文件。

    svn st

输出结果如下。

Don@VM_198_11_sles10_64:~/> svn st
M       test.php
  1. 提交修改。

    svn ci -m 'xxx' test.php

至此,test.php文件就被还原到32604版本了。

Typecho 的Ping自动更新服务插件

研究了一上午Typecho的代码,好吧,算是自己的第一个Typecho插件。

什么是Ping

ping是基于XML_RPC标准协议的更新通告服务,是用于blog在内容更新时通知博客搜索引擎及时进行抓取、更新的方式。
博客搜索引擎在成功接受到ping以后,会立刻进行抓取并更新。使用ping服务,可以让博客搜索引擎在第一时间抓取到您博客上的新内容。

工作机制

发表成功文章后,自动通知设置的Ping更新服务地址。

插件截图

插件列表:
插件列表

插件设置:
插件设置

安装方法

  1. 下载下面地址里的文件,解压后得到Ping目录。
  2. 将Ping目录上传到你服务器上/usr/plugins/目录下。
  3. 进入站点后台,点击启用即可。

更新历史

2014-10-10  升级到1.0.1版本,兼容Typecho1.0 (重要:覆盖文件后,请先禁用再启用)
2014-09-01  修正一处代码bug导致的通知失败

下载地址

微云下载,已过期
微云的分享貌似是一段时间没人下载就会过期,换成115的了。

115下载

同步站点信息提示“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,问题解决,把超时时间设置大一些即可。

QQ互联点击登录提示999报错的问题分析与解决

原因分析

今天收到好几个站点反馈QQ互联登录提示999错误的case,看了下程序,已经是请求互联开放平台的接口了,所以不是云平台的问题导致。

找到其中一个站点,检查站点后台诊断工具情况,发现互联接口请求失败,感觉像是域名解析IP换了,把设置的IP去掉后,请求成功。

ping了下openapi.qzone.qq.com,发现变成了112.90.83.87,确认是域名解析IP变更导致的。

解决方法

  1. 登录站长后台,点击工具-》云平台诊断工具。
  2. 点击QQ互联域名解析后面的设置IP,在弹出来的框里,将QQ互联接口IP里的IP删掉,然后提交。

最新可用的解析IP

如果你的网站通过DNS解析域名有问题,可以设置下面其中一个IP。

深圳电信 183.60.15.158
深圳联通 112.90.83.87