使用Homebrew为PHP@8.x安装/恢复mysqli扩展失败求助
在Mac上为PHP安装并启用mysqli扩展的解决方法
核心说明
Homebrew官方的PHP包已经内置了mysqli扩展,不存在单独的php-mysqli公式,你看到的brew提示是因为没有这个单独包,和你要解决的问题无关。下面是具体解决步骤:
步骤1:确认当前使用的PHP版本与路径
先搞清楚你正在用的是系统自带PHP还是Homebrew安装的PHP:
- 执行命令查看PHP路径:
which php- 如果输出是
/usr/bin/php,说明用的是Mac系统自带PHP,建议切换到Homebrew安装的PHP(系统PHP功能受限,缺少很多扩展) - 如果输出是
/opt/homebrew/bin/php,说明是Homebrew安装的PHP,继续下一步
- 如果输出是
步骤2:正确配置php.ini文件
你之前的错误是因为在php.ini里写了extension=mysqli.so,Homebrew的PHP不需要加.so后缀,而且要确保编辑的是当前PHP对应的php.ini:
- 找到当前PHP加载的php.ini路径:
重点看php --iniLoaded Configuration File这一行的路径(比如/opt/homebrew/etc/php/8.2/php.ini) - 打开该php.ini文件,找到这一行:
去掉前面的分号,改成:;extension=mysqli
(不要加extension=mysqli.so,Homebrew的PHP会自动识别扩展的正确路径) - 保存文件后,重启PHP服务(如果是CLI使用,直接重新打开终端即可;如果是web服务,重启PHP-FPM):
brew services restart php
步骤3:如果是系统PHP或自定义编译PHP,用PECL安装mysqli
如果你坚持用系统自带PHP,或者自己编译的PHP没有内置mysqli,可以通过PECL安装:
- 确保已安装
pecl,如果没有,先安装PHP开发依赖(Homebrew安装的PHP自带pecl):# 系统PHP可能需要先装Xcode命令行工具 xcode-select --install - 执行安装命令,指定你的PHP配置路径(用
which php-config获取路径):pecl install mysqli --with-php-config=/usr/bin/php-config - 安装完成后,按照提示在php.ini里添加
extension=mysqli.so,然后重启PHP
步骤4:验证扩展是否启用
执行以下命令,查看mysqli是否在已加载的扩展列表中:
php -m | grep mysqli
如果输出mysqli,说明扩展已成功启用,此时Laravel的Illuminate数据库连接应该可以正常工作了。
内容的提问来源于stack exchange,提问作者Ryan Atwood
相关产品推荐
相关产品推荐

