MacOS Ventura下PHP intl扩展安装失败,CodeIgniter4报Locale未找到
解决Mac下XAMPP 8.2.0 + CodeIgniter 4的"Class 'Locale' not found"问题
问题根源
- 你在php.ini中取消注释的
extension=php_intl.dll是Windows平台的扩展文件,Mac系统完全不适用。 - pecl安装intl失败是因为缺少ICU(International Components for Unicode)开发依赖库。
具体解决步骤
步骤1:安装ICU依赖
先通过Homebrew安装ICU(未安装Homebrew的话,先执行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"完成安装):
brew install icu4c
步骤2:修正XAMPP的PHP扩展配置
打开XAMPP的php.ini文件(默认路径为/Applications/XAMPP/xamppfiles/etc/php.ini),找到扩展配置区域,替换无效的Windows扩展配置:
; 注释掉原Windows扩展行 ; extension=php_intl.dll ; 添加Mac平台的intl扩展配置 extension=intl
步骤3:重启Apache服务
打开XAMPP控制面板,先停止Apache服务,再重新启动,确保配置生效。
验证扩展是否生效
创建一个名为phpinfo.php的文件,内容如下:
<?php phpinfo(); ?>
将文件放到XAMPP的htdocs目录下,通过浏览器访问该文件,搜索intl关键字,若能看到扩展的详细信息,说明配置成功。
备用方案:pecl编译安装(若上述步骤无效)
先安装Xcode命令行工具:
xcode-select --install
然后指定ICU路径并安装intl扩展:
export PATH="/usr/local/opt/icu4c/bin:$PATH" export LDFLAGS="-L/usr/local/opt/icu4c/lib" export CPPFLAGS="-I/usr/local/opt/icu4c/include" pecl install intl
安装完成后,在php.ini中添加extension=intl,重启Apache即可。
内容的提问来源于stack exchange,提问作者Jebastin Franklin
相关产品推荐
相关产品推荐

