WDDX 扩展在 PHP 8.0+ 中已被完全移除,XAMPP 8.0 及更新版本不再支持;仅 PHP 7.4 或更早的 XAMPP 版本可能预置该扩展,需手动启用并确认文件存在。

WDDX 在 XAMPP 中已废弃,PHP 8.0+ 默认移除
PHP 的 wddx 扩展在 PHP 8.0 中被正式移除,XAMPP 8.0 及后续版本(如 8.2、8.3)不再提供该扩展模块。如果你正在用 XAMPP 8.x 并看到 extension=wddx 报错、php -m 列表里没有 wddx、或 extension_loaded('wddx') 返回 false,不是配置没开对,而是根本不存在——编译时已被剔除。
只有极老的 XAMPP 版本(如基于 PHP 7.4 或更早)才可能预置 php_wddx.dll(Windows)或 wddx.so(Linux/macOS),但即便如此,也需确认是否启用且依赖项满足。
如何确认你的 XAMPP 是否还“有” WDDX
别猜,直接查:
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
- 访问
http://localhost/info.php(内容为<?php phpinfo(); ?>),搜索 “wddx” —— 若无任何区块,说明未启用且大概率不支持 - 打开命令行,执行
php -v看版本;若显示PHP 8.0.0+,可直接放弃启用尝试 - 若用的是 PHP 7.4 或更低版 XAMPP,检查
php.ini中是否存在;extension=wddx行;再查看extension_dir目录下是否有php_wddx.dll(Windows)或wddx.so(macOS/Linux)
如果硬要启用(仅限 PHP ≤7.4 的 XAMPP)
前提是:你明确知道项目依赖 WDDX 且无法升级代码。操作步骤如下:
- 确认
phpinfo()显示的Loaded Configuration File路径(常为C:\xampp\php\php.ini或/opt/lampp/etc/php.ini),不要改错文件 - 在该
php.ini中搜索wddx;若找到;extension=wddx,删掉前面分号;若没找到,手动添加一行:extension=wddx - 确保
extension_dir指向正确路径,例如 Windows 下应为C:\xampp\php\ext(末尾不带反斜杠) - 重启 Apache(必须完整 Stop → Start,不是刷新页面)
- 验证:新建
test.php,内容为<?php var_dump(extension_loaded('wddx'));;输出bool(true)才算成功
替代方案比启用 WDDX 更实际
WDDX 是一种过时的 XML 序列化格式,现代 PHP 项目几乎都用 json_encode()/json_decode() 或 serialize()/unserialize()。如果你在维护老系统,建议逐步替换:
-
wddx_serialize_value($data)→ 改用json_encode($data, JSON_UNESCAPED_UNICODE) -
wddx_deserialize($xml)→ 改用json_decode($json, true) - 注意:WDDX 对中文支持弱、无标准 RFC、易受 XXE 攻击;JSON 更轻量、安全、跨语言通用
真正卡住的往往不是“怎么开”,而是发现开了也没用——因为 Apache 启动时就报 PHP Warning: Module 'wddx' already loaded 或直接拒绝加载。这时候该做的不是调配置,是看 PHP 版本和迁移路径。

















