php 8.0+ 已彻底移除内置 xmlrpc 扩展,无法通过 php.ini 启用;推荐使用 thecodingmachine/xml-rpc 或 phplang/xmlrpc 等纯 php 库替代,仅依赖已启用的 ext-xml 和 ext-simplexml。

XMLRPC 扩展在 XAMPP 中默认未启用,且 PHP 8.0+ 已彻底移除内置 xmlrpc 扩展 —— 你无法通过简单开启 extension=xmlrpc 让它工作。
PHP 8.0+ 用户:xmlrpc 扩展已不存在
从 PHP 8.0 开始,xmlrpc 被从核心中剥离并归档为 PECL 扩展,但官方已停止维护。PECL 上最新版 xmlrpc(v1.0.0RC2)仅支持到 PHP 7.4,编译失败是常态。
- 尝试在
php.ini中添加extension=xmlrpc或extension=php_xmlrpc.dll→ Apache 启动报错:PHP Warning: PHP Startup: Unable to load dynamic library 'xmlrpc' - 即使强行下载旧版 DLL(如 PHP 7.4 + TS + x64),在 PHP 8.1/8.2 下加载会直接触发
Access violation或 Apache 崩溃 - Windows 下用
php -m | findstr xmlrpc、Linux 下用php -m | grep xmlrpc均无输出,说明扩展根本不可用
替代方案:用 pure-PHP 库实现 XML-RPC 客户端/服务端
放弃原生扩展后,主流做法是改用 Composer 包。推荐两个轻量、兼容 PHP 8+ 的实现:
-
thecodingmachine/xml-rpc:专注客户端调用,API 简洁,支持 HTTPS 和基本认证composer require thecodingmachine/xml-rpc -
phplang/xmlrpc:更完整(含服务端),基于 PSR-7,适合需要暴露 XML-RPC 接口的场景composer require phplang/xmlrpc
示例(客户端调用):
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
$client = new \TheCodingMachine\XmlRpc\Client('http://example.com/RPC2');
$result = $client->call('system.listMethods', []);
注意:这类库不依赖 ext-xmlrpc,只依赖 ext-xml 和 ext-simplexml(XAMPP 默认已启用)。
若必须用原生扩展(仅限 PHP ≤7.4)
仅当确认你的 XAMPP 捆绑的是 PHP 7.4 或更早版本时才可操作:
- 去 PECL xmlrpc 下载页 找对应版本(例如
xmlrpc-1.0.0rc2-7.4-ts-vc15-x64.zip) - 解压后把
php_xmlrpc.dll放入\xampp\php\ext\ - 编辑
\xampp\php\php.ini,取消注释或新增:extension=php_xmlrpc.dll - 确保
extension_dir指向正确路径(如extension_dir = "\xampp\php\ext") - 重启 Apache,检查
phpinfo()页面是否有xmlrpc模块区块
常见失败点:选错 TS/NTS、x86/x64、VC 版本;php.ini 修改了但 Apache 加载的是另一份(用 php --ini 确认路径)。
真正麻烦的不是“怎么开”,而是“为什么开不了”——PHP 8+ 的现实就是没有官方 XML-RPC 扩展。硬要集成旧系统接口时,优先走纯 PHP 库 + ext-xml,比折腾 DLL 稳定得多。










