WordPress搭建——Window Live Writer离线发布问题

 

首次利用WLW发布时,遇到500问题了。【本人使用Windows Server 2012】

1、问题如下:

服务器报告以下网址出错:

http://blog.canself.com/xmlrpc.php

500 Internal Server Error

【注:以下插件(步骤2)不建议装,因为偶装了在卸载之后,就说偶的xmlrpc是禁用的,但跳过此步骤,直接跳至3的话,不会说xmlrpc禁用——在之前的那次偶就这样过来的。。。不过偶傻傻的回滚磁盘了,重新找了问题,还木有找到原因。。。】

2、经查找,说直接到设置—撰写里打开xmlrpc就行了,但就是木有找到这个选项,后来就选择装插件“Control XML-RPC publishing”,这样就可以打开xmlrpc啦,但仍然会报告上述错误,唯一的不同是,之前wlw发布不到博客上,现在是已经发上去了之后继续报500问题。哎。。。

3、无奈之下,只能选择最后一招了,利用IIS中的Web平台安装程序,选择安装php。【这招还是之前处理看到Web平台安装可以直接安装php,不用自己配,觉得新鲜装的,然后,wlw就不报500了】【所以呢——上面500问题很有可能是php配置问题,偶木有找到,希望有人能找到啦】

4、装完继续用wlw就会出现以下问题:【Invalid Response document】

从日志服务器接收的对 metaWeblog.editPost 方法的响应无效:

Invalid response document returned from XmlRpc server

注:其中“metaWeblog.editPost ”问题不定,我第一次遇到的是“blogger.getUsersBlogs”方法相应无效

然后此处问题解决方法就要方便的多

修改wp-includes目录下的class-IXR.php文件,

在以下代码

 function output($xml)
    {
        $charset = function_exists('get_option') ? get_option('blog_charset') : '';
        if ($charset)
            $xml = '<?xml version="1.0" encoding="'.$charset.'"?>'."\n".$xml;
        else
            $xml = '<?xml version="1.0"?>'."\n".$xml;
        $length = strlen($xml);
        header('Connection: close');
        header('Content-Length: '.$length);
        if ($charset)
            header('Content-Type: text/xml; charset='.$charset);
        else
            header('Content-Type: text/xml');
        header('Date: '.date('r'));
        echo $xml;
        exit;
    }

将
$length = strlen($xml);
  
改为
$length = strlen($xml)+3;
  

这个据说是因为wordpress的编码(utf-8)与wlw的编码(utf-8+)不一样导致的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*