启用PHP intl扩展仍提示Class 'Locale' not found的解决方案求助
解决方案:Class "Locale" not found 错误处理
以下是针对该问题的详细排查与解决步骤:
确认修改的是CLI模式对应的php.ini文件
XAMPP中Apache服务使用的php.ini和CLI(终端命令行)模式使用的php.ini是两个独立文件。你在VS Code终端执行命令属于CLI模式,需确保修改的是CLI版本的配置文件:- 在终端执行命令:
php --ini - 查看输出里的
Loaded Configuration File项,这就是当前CLI环境正在使用的php.ini路径,确认你修改的是这个文件,而非Apache目录下的php.ini。
- 在终端执行命令:
验证intl扩展是否成功加载
修改配置并重启后,在终端执行命令验证:- 执行
php -m,查看输出列表中是否包含intl - 或者执行
php -r "var_dump(class_exists('Locale'));",返回bool(true)说明扩展加载正常,返回bool(false)则表示加载失败。
- 执行
检查intl扩展文件及路径配置
- 确认
D:\XAMPP\php\ext目录下存在php_intl.dll文件,若缺失,建议重新安装对应版本的XAMPP(确保PHP版本匹配),或者下载与当前PHP版本、线程安全模式(TS/NTS)、架构(x86/x64)完全一致的intl扩展文件放入该目录。 - 打开CLI的php.ini,检查
extension_dir配置项,确保其指向正确的扩展目录,例如:extension_dir = "D:\XAMPP\php\ext",路径中的反斜杠需用双反斜杠或正斜杠。
- 确认
重启CLI会话
修改php.ini后,必须关闭当前VS Code的终端窗口,重新打开一个新的终端会话再执行项目命令——旧终端会保留之前的PHP配置缓存,无法读取新修改的配置。检查PHP版本兼容性
确保XAMPP自带的PHP版本与项目依赖的intl扩展版本完全兼容,避免因版本、线程安全模式或架构不匹配导致的加载失败。若手动替换过PHP或扩展文件,需严格匹配各项参数。
内容的提问来源于stack exchange,提问作者Harsh Pareek
相关产品推荐
相关产品推荐

