必须启用 mbstring 才能运行 Laravel 等主流 PHP 应用,否则报错或白屏;需通过 phpinfo() 确认 php.ini 路径,取消 ;extension=mbstring 注释,重启 Apache 并验证 Web/CLI 双环境生效。

必须启用 mbstring 才能跑 Laravel、MediaWiki、OpenCart、Magento 2 等主流 PHP 应用,否则会直接报错或白屏——不是代码问题,是 XAMPP 默认没开它。
确认当前 php.ini 路径和 mbstring 状态
别猜路径,先看真实加载的是哪个配置文件:打开浏览器访问 http://localhost/phpinfo.php(若没有,新建一个写 ),搜索 Loaded Configuration File,记下完整路径(通常是 C:\xampp\php\php.ini)。再搜 mbstring,如果没看到绿色“enabled”区块,说明扩展根本没加载。
- 运行命令行
php --ini和php -m | findstr mbstring,确认 CLI 环境是否也缺失——Composer 报错就来自这里 - 注意:XAMPP 8.0+ 的
php.ini中默认是;extension=mbstring(带分号注释),不是;extension=php_mbstring.dll;旧版 XAMPP(如 7.x)才用 DLL 后缀写法 - 如果
phpinfo()显示extension_dir是绝对路径(如C:\xampp\php\ext\),检查末尾有没有多余反斜杠——多一个或少一个都会导致mbstring静默失败
修改 php.ini 启用 mbstring(Windows/XAMPP)
用记事本或 VS Code 打开上面确认的 php.ini 文件,搜索 mbstring,找到这一行:
;extension=mbstring
删掉开头的分号,改成:
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
extension=mbstring
- 不需要加
.dll后缀(PHP 8.0+ 自动识别);如果改完仍不生效,再检查extension_dir是否指向"ext"(相对路径)或"C:\xampp\php\ext"(绝对路径,无结尾反斜杠) -
mbstring无强依赖其他扩展,但建议确保php_openssl.dll和php_curl.dll也已启用——很多框架安装流程会用到 HTTPS 请求 - 保存文件后,**只重启 Apache**(XAMPP 控制面板点 “Stop” 再 “Start”),不用动 MySQL 或其他服务
验证是否真正生效
改完不验证 = 白改。两个关键检查点缺一不可:
- 刷新
phpinfo()页面,搜索mbstring,看到绿色标题栏和下方一堆配置项(如mbstring.func_overload)才算成功 - 命令行执行:
php -r "echo mb_strlen('你好') . PHP_EOL;",输出2表示函数可用;执行php -m | findstr mbstring应返回mbstring(无空格、无警告) - 如果 CLI 有而 Web 没有,说明你改错了
php.ini——Web 和 CLI 可能加载不同配置文件,务必以phpinfo()显示的路径为准
最容易被忽略的是:XAMPP 里 mbstring 不是“开了就完事”,它影响字符串截取、编码检测、正则匹配等底层行为;比如 substr('数据库', 0, 2) 在未启用时会乱码,启用后才正确返回“数据”。别等应用崩溃了才回头查这个。










