解决wordpress无法离线发布(远程发布)的故障

使用wordpress mu3.0与3.1时,不知道什么原因,只要开户了WORDPRESS的MU选项,Zoundry Raven和Windows Live Writer就无法注册账户成功(之前在Zoundry Raven里建好的账号还能收发,但不能新建)。在Zoundry Raven上表现为:输入BLOG主地址后,能进入下一步,也能自动出来wordpress的API,但填好所有选项后,下一步便报错了:
“Error fetching list of blogs”,细节如下:
zoundry.blogpub.xmlrpc.xmlrpcserverimpl.ZXmlRpcException: {ZBlogServerException['xmlrpcapi.getbloglist' type:Publishing Error, code:0 msg:xmlrpcapi.blog_list_unavailable_error]}
    at zoundry\\blogpub\\xmlrpc\\xmlrpcserverimpl.pyo:267 [_getUserBlogs()]  ->  None
    at zoundry\\blogpub\\xmlrpc\\xmlrpcserverimpl.pyo:1217 [_getUserBlogs()]  ->  None
    at zoundry\\blogpub\\xmlrpc\\xmlrpcserverimpl.pyo:251 [getBlogs()]  ->  None
    at zoundry\\blogapp\\services\\pubsystems\\blog\\xmlrpc.pyo:13 [_listBlogs()]  ->  None
    at zoundry\\blogapp\\services\\pubsystems\\blog\\blogpublisher.pyo:508 [listBlogs()]  ->  None
    at zoundry\\blogapp\\models\\ui\\wizard\\newpublishersitemodel.pyo:52 [listBlogs()]  ->  None
    at zoundry\\blogapp\\ui\\wizards\\publishersitewizard.pyo:516 [_runTask()]  ->  None
Caused By:
zoundry.blogpub.xmlrpc.xmlrpcserverimpl.ZXmlRpcException: {ZBlogServerException['xmlrpcapi.getbloglist' type:Publishing Error, code:0 msg:xmlrpcapi.blog_list_unavailable_error]}
    at zoundry\\blogpub\\xmlrpc\\xmlrpcserverimpl.pyo:267 [_getUserBlogs()]  ->  None
    at zoundry\\blogpub\\xmlrpc\\xmlrpcserverimpl.pyo:1217 [_getUserBlogs()]  ->  None
    at zoundry\\blogpub\\xmlrpc\\xmlrpcserverimpl.pyo:251 [getBlogs()]  ->  None
    at zoundry\\blogapp\\services\\pubsystems\\blog\\xmlrpc.pyo:13 [_listBlogs()]  ->  None
    at zoundry\\blogapp\\services\\pubsystems\\blog\\blogpublisher.pyo:508 [listBlogs()]  ->  None
    at zoundry\\blogapp\\models\\ui\\wizard\\newpublishersitemodel.pyo:52 [listBlogs()]  ->  None
    at zoundry\\blogapp\\ui\\wizards\\publishersitewizard.pyo:516 [_runTask()]  ->  None

Thread: [ZWizardTaskThread]
Thread: [ZWizardTaskThread]


    干干净净安装了一台CENTOS,APACHE,PHP,MYSQL,WORDPRESS后
,未出现上述问题。对两者抓包后发现:
发送的的POST包如下:

POST /xmlrpc.php HTTP/1.1
Host: blog.sjhf.net
Accept-Encoding: identity
User-Agent: Zoundry Raven (www.zoundry.com); zpypatch.xmlrpclib.py/1.0.1
Content-Type: text/xml; charset=UTF-8
Content-Length: 329



blogger.getUsersBlogs


urn:zoundry.com:raven:pub:xmlrpc:metaweblog:wordpress


admin


********



 

如正确执行,返回值为: HTTP/1.1 200 OK
Date: Fri, 04 Mar 2011 09:01:47 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Connection: close
Content-Length: 641
Content-Type: text/xml



  
    
      
      
  
  isAdmin1
  urlhttp://blog.sjhf.net/
  blogid1
  blogName北亚数据恢复博客
  xmlrpchttp://blog.sjhf.net/xmlrpc.php


      
    
  



而错误的返回结构为:

HTTP/1.1 200 OK
Date: Fri, 04 Mar 2011 05:54:05 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Connection: close
Content-Length: 158
Content-Type: text/xml



  
    
      
      
      
    
  



仔细研究xmlrpc.php后,发现问题出在_multisite_getUsersBlogs函数上,或者说是_multisite_getUsersBlogs函数在$rpc = new IXR_Client("$...及其后几句与IXR_Client对象有关的调用上无返回值。
$rpc->query('wp.getUsersBlogs', $args[1], $args[2]); 此行代码甚至不会执行wp.getUsersBlogs这个子函数。
限于时间与能力,暂未进一步研究。直接用RETURN语句替换了。
改动如下:
WORDPRESS 3.0.X中,在/xmlrpc.php,第1604行更改。
WORDPRESS 3.1中,在/wp-includes/class-wp-xmlrpc-server.phpt 1692行前更改:
 $rpc->query('wp.getUsersBlogs', $args[1], $args[2]);
//上面一行是原来有的,下面两行增加
array_shift($args);
return $this->wp_getUsersBlogs($args);
       


现在测试的结果:3.0.X依然无法执行。稍后再研究                 
附加内容

本文出自 “张宇(数据恢复)” 博客,谢绝转载!

你可能感兴趣的:(mysql,服务器,word,Office,未分类,开盘)