xampp 默认不启用 mbstring 扩展,需手动取消 php.ini 中 extension=mbstring(php 8.x)或 extension=php_mbstring.dll(旧版)的注释,确认 extension_dir 正确且 dll 存在,重启 apache 并分别验证 web 和 cli 环境生效。

XAMPP 默认不启用 mbstring 扩展,但它是 Laravel、MediaWiki、OpenCart、Magento 等主流 PHP 应用运行的硬性依赖——没开它,Class 'mb_strlen' not found 或 Composer 报错 "The requested PHP extension mbstring is missing" 就会直接拦在第一步。
确认你改的是正确的 php.ini 文件
很多人改了半天没效果,是因为编辑了错误的配置文件。XAMPP 里可能有多个 php.ini:Apache 加载的是 XAMPP\php\php.ini,而命令行(如 php -v)可能用的是另一个。必须统一。
- 打开浏览器访问
http://localhost/phpinfo.php(或新建一个含<?php phpinfo(); ?>的文件),搜索Loaded Configuration File,记下完整路径(通常是C:\xampp\php\php.ini) - 在命令行执行
php --ini,对比输出的Loaded configuration file是否一致;不一致就说明 CLI 和 Web 用的不是同一份配置 - 只编辑这个路径下的
php.ini,其他位置的(比如XAMPP\apache\bin\php.ini)不要动
取消注释 extension=mbstring 并验证 dll 存在
mbstring 在 Windows 下对应的是 php_mbstring.dll,XAMPP 自带该文件,但默认被禁用。关键不是“装”,而是“解禁 + 路径对得上”。
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
- 用记事本或 VS Code 打开刚才确认的
php.ini,搜索mbstring - 找到这一行:
;extension=mbstring(PHP 7.4+)或;extension=php_mbstring.dll(旧版 XAMPP),删掉开头的分号;,改为extension=mbstring - 再搜
extension_dir,确认它的值是相对路径且末尾**没有反斜杠**,例如:extension_dir = "ext"(正确),而不是extension_dir = "ext\"(会导致扩展静默加载失败) - 去
XAMPP\php\ext\目录下手动检查是否存在php_mbstring.dll文件;若缺失,从原始 XAMPP 安装包或官网重装包中复制一份
重启 Apache 后验证是否真正生效
改完配置不重启等于白改。而且要验证两个环境:Web 页面和命令行,因为 Composer 和 Artisan 命令走的是 CLI PHP。
- 用 XAMPP 控制面板点击
Stop再StartApache(仅重启 Apache 即可,不用动 MySQL) - 刷新
phpinfo()页面,搜索mbstring,看到绿色“enabled”区块才算成功 - 命令行执行:
php -m | findstr mbstring(Windows)或php -m | grep mbstring(macOS/Linux),应输出mbstring - 再跑一句测试:
php -r "echo mb_internal_encoding();",应输出UTF-8(说明中文多字节处理链已通)
最容易被忽略的一点:XAMPP 8.0+ 默认使用 PHP 8.x,extension=mbstring 这种写法才有效;旧版 XAMPP(如 7.4)可能仍需写成 extension=php_mbstring.dll。别照抄网上的教程,先看自己 phpinfo() 顶部显示的 PHP 版本,再决定用哪种语法。










