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

旧地址:http://blog.canself.com/wordpress_wlw/

首次利用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文件,

在以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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;
}

1
2
3
4
5
6
// 将
$length = strlen($xml);

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

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