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
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