启用intl扩展后仍提示Class 'Locale'未找到(CI4.4.3+PHP8.2)
解决Class 'Locale'未找到的问题
针对你在CI4.4.3 + PHP8.2环境下,启用intl扩展后仍出现Class "Locale" not found报错的情况,可按以下步骤排查:
- 确认修改的是Apache对应的php.ini:XAMPP中Apache和CLI可能使用不同的php.ini文件。创建一个php文件写入
<?php phpinfo(); ?>,访问后查看「Loaded Configuration File」项,确保你修改的是该路径下的php.ini。 - 验证intl扩展是否成功加载:在phpinfo页面搜索「intl」,若没有相关模块信息,说明扩展未加载成功。也可在命令行执行
php -m | findstr intl(Windows),注意命令行的PHP版本需和Apache一致。 - 检查扩展文件完整性:查看XAMPP的
php/ext目录下是否存在php_intl.dll文件。若缺失,需下载对应PHP8.2线程安全版的扩展包,将php_intl.dll复制到ext目录,同时把扩展包中的icu相关dll文件复制到XAMPP的apache/bin目录。 - 确保Apache完全重启:停止Apache服务后再启动,不要用重载,避免配置未生效。
- 检查CI4配置:打开
app/Config/App.php,确认$defaultLocale设置为合法区域值(如'en_US'),避免非法值导致intl模块调用失败。 - 排查权限问题:确保Apache运行用户对
php/ext/php_intl.dll文件有读取权限,权限不足会导致扩展无法加载。
内容的提问来源于stack exchange,提问作者kristianferdy3
相关产品推荐
相关产品推荐

