You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Mac下Homebrew管理PHP启动报错,求PHP7.1及以上版本恢复方案

解决PHP Startup: Unable to load dynamic library 'intl.so' 错误(Homebrew + Mac)

我之前在Mac上用Homebrew管理PHP版本时也碰到过一模一样的问题,尤其是切换版本或者清理旧包后,很容易出现这种扩展找不到的情况,给你整理几个亲测有效的解决步骤:

1. 先确认当前PHP环境状态

首先得搞清楚你当前在用的PHP版本和扩展的实际情况:

  • 执行 php -v 确认当前激活的PHP版本,确保你要恢复的是PHP7.1或更高版本
  • 执行 ls /usr/local/opt/php71-intl/ 检查错误提示里的扩展目录是否存在,如果这个目录直接不存在,说明对应的intl扩展包已经被删除了

2. 重新安装对应版本的intl扩展

如果扩展目录不存在,先安装PHP7.1对应的intl扩展:

  • 首先添加支持旧版PHP的Homebrew源(因为官方源可能已经移除了旧版本包):
    brew tap exolnet/homebrew-deprecated
    
  • 然后安装php71-intl扩展:
    brew install php71-intl
    

3. 检查并修正PHP配置

有时候扩展装了,但PHP配置里的路径不对或者扩展被注释了:

  • 执行 php --ini 找到当前PHP加载的主配置文件(比如/usr/local/etc/php/7.1/php.ini
  • 打开这个配置文件,查找 extension=intl.so 这一行:
    • 如果前面有分号;,把分号去掉取消注释
    • 如果是指定了绝对路径,确保路径是/usr/local/opt/php71-intl/intl.so,和错误提示里的路径一致

4. 切换到目标PHP版本并重启服务

确保系统当前用的是PHP7.1版本,并且重启服务让配置生效:

  • 切换并链接PHP7.1:
    brew link php@7.1 --force --overwrite
    
  • 如果用了PHP-FPM服务,重启它:
    brew services restart php@7.1
    

5. 验证问题是否解决

最后执行 php -vphp -m,检查intl扩展是否出现在已加载的扩展列表里,同时再运行PHP脚本或者命令,看看启动时的警告是否消失。

如果以上步骤都不行,可能是PHP7.1本身的安装文件损坏了,可以尝试重新安装整个PHP7.1:

brew reinstall php@7.1

内容的提问来源于stack exchange,提问作者VickenCode

火山引擎 最新活动