MacOS High Sierra下XAMPP环境PHP7.1安装intl扩展失败求助
我太懂你这种挫败感了——跟着教程一步步走,pecl安装到一半卡壳,换了好几个帖子都解决不了,尤其是在MacOS High Sierra+XAMPP PHP7.1这种有点“过时”的环境里,依赖兼容问题特别头疼。我之前帮朋友解决过一模一样的问题,分享几个亲测有效的步骤:
1. 先锁定XAMPP的PHP环境,别和系统PHP混淆
Mac自带的PHP会和XAMPP的PHP冲突,这是很多人踩坑的根源。先把XAMPP的PHP路径临时加入环境变量:
export PATH="/Applications/XAMPP/bin:$PATH"
执行完后验证一下,确保用的是XAMPP的PHP7.1:
php -v
输出应该显示类似PHP 7.1.x (cli) (built: ...) (ZTS),并且路径指向XAMPP的bin目录。
2. 安装兼容PHP7.1的ICU依赖库
intl扩展依赖ICU库,High Sierra自带的ICU版本太低,而高版本ICU又和PHP7.1不兼容,所以我们要装指定版本的ICU4C:
# 如果找不到icu4c@62,先执行这行提取旧版本公式 brew tap-new homebrew/core && brew extract icu4c homebrew/core --version=62.1 # 安装指定版本的ICU4C brew install icu4c@62
安装完后,创建软链接让编译器能找到头文件和库:
ln -s /usr/local/opt/icu4c@62/include/unicode /usr/local/include/unicode ln -s /usr/local/opt/icu4c@62/lib/libicu*.dylib /usr/local/lib/
3. 带指定参数用pecl安装intl扩展
直接用pecl安装会因为找不到ICU路径失败,所以要手动指定ICU的安装目录,同时指定和PHP7.1匹配的intl版本(3.0.0是适配PHP7.1的稳定版):
sudo pecl install intl-3.0.0 --with-icu-dir=/usr/local/opt/icu4c@62
如果提示phpize找不到,直接用XAMPP的phpize绝对路径执行编译安装:
sudo /Applications/XAMPP/bin/phpize && ./configure --with-icu-dir=/usr/local/opt/icu4c@62 && make && make install
4. 启用扩展并重启Apache
安装完成后,打开XAMPP的php.ini文件(路径一般是/Applications/XAMPP/etc/php.ini),找到这一行:
;extension=intl.so
把前面的分号去掉,改成:
extension=intl.so
然后打开XAMPP控制面板,重启Apache服务。
5. 验证安装结果
在XAMPP的htdocs目录下创建一个test_intl.php文件,内容如下:
<?php phpinfo(); ?>
在浏览器访问http://localhost/test_intl.php,页面里搜索“intl”,如果能看到intl扩展的配置信息,就说明安装成功了!
内容的提问来源于stack exchange,提问作者Juan Fernandez Sosa

