WordPress XMLRPC 的问题

Posted

技术标签:

【中文标题】WordPress XMLRPC 的问题【英文标题】:Issue with WordPress XMLRPC 【发布时间】:2014-08-19 20:02:54 【问题描述】:

我正在尝试使用 WordPress XML-RPC。我发现默认情况下 XMLRPC 将在我的 WordPress 版本(3.9.1)中启用。但是当我尝试运行下面的 php 代码时,会显示以下错误:

Fatal error: Call to undefined function xmlrpc_encode_request() in /Applications/XAMPP/xamppfiles/htdocs/easyblog/test/hellotest.php on line 6

这是我的 PHP 代码。

<?PHP
//XML RPC Test
define('RPC_URL', 'http://localhost/wordpress/xmlrpc.php');
function sendRequest($methodName, $parameters)

    $request = xmlrpc_encode_request($methodName, $parameters);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_URL, RPC_URL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    $results = curl_exec($ch);
    $results = xml_decode($results);
    curl_close($ch);
    return $results;


$parameters = array();
$response = sendRequest('demo.sayHello', $parameters);?>

服务器详情:

我在 Mac OS X 上使用带有 PHP 5.5.11 的 XAMPP 服务器。

当我用谷歌搜索这个错误时,我发现我们需要在 XAMPP php 配置文件中启用 XML-RPC。所以在 XAMPP php.ini 文件中我取消了extension=php_xmlrpc.dll 的注释并重新启动服务器并检查。但是我又遇到了同样的错误。

【问题讨论】:

您能否通过查看 phpinfo() 确认 php_xmlrpc.dll 未启用? 如何检查它是否启用?当我在关于 xmlrpc 的两个值上运行 phpinfo() 时,会显示 xmlrpc_error_number 和 xmlrpc_errors。 我认为它没有启用。我用了var_dump(get_loaded_extensions()),没有找到xmlrpc。 你能用 phpinfo() 确认你正在编辑正确的 php.ini 文件吗?它将位于顶部。 您没有使用 Windows 服务器,因此加载 .dll 对您没有任何好处。您可能会很幸运,将 .dll 更改为 .so 并重新启动 Apache。否则我不使用 XAMPP,所以我无法评论启用此功能。 【参考方案1】:

这可能是因为您尚未在服务器上安装 xmlrpc。您可以按照以下步骤检查库:

1) 使用此内容创建一个新的 php 文档。例如 info.php。

<?php
phpinfo();
?>

2) 打开浏览器并加载之前创建的页面:http://YOUR-DOMAIN/info.php

3) 搜索“xmlrpc”部分。

4) 在这一点上可能会发生两件事:

4.1) 如果你安装了 xmlrpc 库,可能你的 wordpress 安装或检查点 5 有错误

4.2) 如果你还没有在你的服务器上安装 xmlrpc 库,你必须安装。在 ubuntu 上,您可以在终端上安装 xmlrpc 库写入 sudo apt-get install curl libcurl3 libcurl3-dev php5-xmlrpc php5-curl

5) 最后,检查您的文件 php.ini 是否启用了扩展名。找到后续行 ;extension=php_xmlrpc.so 并删除 de ";"。 此时请注意:Windows 服务器具有 .dll 扩展名,UNIX 服务器(Mac OS X 或 Linux)具有 .so 扩展名。

【讨论】:

以上是关于WordPress XMLRPC 的问题的主要内容,如果未能解决你的问题,请参考以下文章

解决WordPress网站被利用xmlrpc.php文件攻击问题

防止WordPress利用xmlrpc.php进行暴力破解以及DDoS

sh wordpress xmlrpc测试

apache_conf Den Zugriff auf die xmlrpc.php von WordPress unterbinden

WordPress xmlrpc.php flaw exploited to install a WSO 2.1 Web Shell by oRb

Wordpress 翻译页面选项