dreamweaver提示“扩展缺失”实为所调用的本地php环境缺少对应扩展,需确认dw使用的php可执行文件路径,检查并修改cli模式下生效的php.ini,启用如mbstring、curl、gd等扩展,并解决windows下vc运行库缺失或macos/linux下扩展编译与依赖问题。

Dreamweaver 运行 PHP 时提示“扩展缺失”,本质不是 DW 的问题,而是它调用的本地 PHP 环境缺少对应扩展(比如 mbstring、curl、gd 等)。DW 本身不带 PHP 解释器,它依赖你系统已安装的 PHP —— 所以修复重点在 PHP 配置,不是 DW 设置。
确认当前 DW 使用的是哪个 PHP 可执行文件
DW 默认会尝试调用系统 PATH 中的 php.exe,但有时会误读或指向旧版本。必须先搞清它到底在用哪一个:
- 在 DW 中打开「站点设置」→「服务器」→ 查看「PHP 服务器模型」下指定的「PHP 可执行文件路径」;
- 如果没手动指定,打开终端运行
where php(Windows)或which php(macOS/Linux),再执行php -v和php --ini确认实际加载的php.ini位置; - 常见陷阱:XAMPP/MAMP/WAMP 自带的 PHP 路径被忽略,而系统 PATH 里残留了旧版 PHP(如从 php.net 下载解压的独立版本),导致
php --ini显示的配置文件路径和 DW 实际加载的不一致。
启用扩展前先检查 php.ini 是否正确加载
很多“扩展缺失”报错其实是 php.ini 根本没生效,或者 DW 调用的是 CLI 模式下的配置,而非 Web 服务器用的那套:
- 新建一个
info.php文件,内容为<?php phpinfo(); ?>,用浏览器访问(走 Apache/Nginx),确认页面顶部显示的 “Loaded Configuration File” 路径; - 对比
php --ini输出的路径——CLI 和 Web SAPI 的php.ini可能不同,DW 通常走 CLI 模式,所以优先改 CLI 对应的php.ini; - 打开该
php.ini,搜索extension_dir,确认值指向真实存在的扩展目录(如"C:\xampp\php\ext"),且路径中没有中文或空格; - 取消注释对应扩展行,例如把
;extension=mbstring改成extension=mbstring(Windows)或extension=mbstring.so(macOS/Linux)。
Windows 下启用常见扩展的注意事项
不是所有扩展开箱即用,尤其 Windows 环境下依赖 DLL 和运行时库:
立即学习“PHP免费学习笔记(深入)”;
-
php_curl.dll启用后若报“找不到 VCRUNTIME140.dll”等错误,说明缺少 Microsoft Visual C++ Redistributable,需安装 VS2015–2022 对应版本; -
php_mysqli.dll和php_pdo_mysql.dll必须同时开启,且确保extension_dir下存在这两个文件; - 某些 PHP 版本(如 8.0+)默认不再附带
php_gd2.dll,需手动下载对应线程安全(TS)/非线程安全(NTS)版本并放入ext目录; - 改完
php.ini后,务必重启 DW(不是刷新预览),否则缓存可能仍读旧配置。
macOS/Linux 用户注意扩展编译与权限
Homebrew 或源码编译的 PHP,扩展往往需要手动编译或启用:
- 用 Homebrew 安装的 PHP(如
php@8.2),扩展通常通过brew install php@8.2-mbstring等公式安装,然后检查php.ini中是否自动添加了extension="/opt/homebrew/lib/php/pecl/.../mbstring.so"; - 手动编译的 PHP,需运行
./configure --with-mbstring等参数重新编译,或单独用pecl install mbstring; -
.so文件权限需为可读可执行(chmod 755),且所属用户与运行 DW 的用户一致,否则 CLI 模式下会静默失败; - 部分扩展(如
imagick)依赖外部库(libmagickwand),仅启用.so不够,必须先用brew install imagemagick或apt install libmagickwand-dev安装依赖。
真正卡住人的地方,往往不是“怎么开扩展”,而是没意识到 DW 调用的是 CLI 模式的 PHP,而你只改了 Apache 用的 php.ini;或者扩展 DLL 文件存在,但缺 VC 运行库,错误信息却只显示“找不到指定模块”。动手前先跑一遍 php --ini 和 php -m | grep mbstring,比盲目重启 DW 有效得多。











