trae环境下PHP的mbstring扩展需手动启用:先用trae php --ini定位对应版本php.ini,再在[ExtensionList]段添加extension=mbstring(不可注释),重启trae php后通过trae php -m | grep mbstring验证生效。

trae 环境下 PHP 的 mbstring 扩展默认未启用,必须手动开启配置,否则 mb_strlen()、mb_substr() 等函数会报错或返回空。
确认当前 PHP 版本和配置路径
trae 使用的是内置 PHP(非系统全局 PHP),所以不能直接改 /etc/php/ 或 /usr/local/etc/php/ 下的配置。需先定位 trae 管理的 PHP 实例:
- 执行
trae php -v查看 PHP 版本(如 8.1、8.2) - 执行
trae php --ini输出类似:Loaded Configuration File: /Users/xxx/.trae/php/8.2/php.ini—— 这才是你要编辑的文件 - 注意:不同 PHP 版本对应独立的
php.ini,切勿改错版本目录
在 php.ini 中启用 mbstring 扩展
打开上一步得到的 php.ini 文件,在 [ExtensionList] 段落(或文件末尾)添加扩展加载指令:
extension=mbstring
⚠️ 注意事项:
立即学习“PHP免费学习笔记(深入)”;
- 不要写成
extension=php_mbstring.so或extension=mbstring.so—— trae 内置 PHP 使用的是 Windows 风格命名(即使你在 macOS/Linux 上),但实际加载时只认mbstring(无前缀无后缀) - 确保该行**未被分号注释**(即不是
;extension=mbstring) - 不需要手动复制
.so/.dll文件 —— trae 已预编译并内置所有常用扩展
验证 mbstring 是否生效
修改保存后,必须重启 trae 的 PHP 服务才能生效:
- 执行
trae restart(全量重启)或trae php restart(仅重启 PHP 子服务) - 执行
trae php -m | grep mbstring,有输出即表示已加载 - 写个测试脚本:
,返回bool(true)才算成功 - 常见失败现象:
Call to undefined function mb_strlen()—— 多半是没重启或写错了 extension 名
trae 的 PHP 扩展机制不走传统 php.d/ 目录,也不读取系统 php.ini,所有配置必须落在它自己管理的那个 php.ini 里;漏掉重启或拼错 extension 名是最常卡住的两个点。











