homebrew 安装 php 扩展后需手动配置 php.ini:先确认 php 路径和配置文件位置,再用 pecl 指定 extension_dir 安装扩展,最后在 php.ini 中添加 extension=xxx(不加.so),保存后重启终端验证。

在 macOS 上用 Homebrew 安装 PHP 扩展后,php -m 不显示、phpinfo() 找不到扩展名,不是扩展没装上,而是 Homebrew 的 PHP 配置默认不自动加载 pecl 安装的扩展,必须手动编辑 php.ini 并指定 extension 路径。
确认当前 PHP 环境是否干净
先运行 which php,输出应为 /opt/homebrew/bin/php(M1/M2)或 /usr/local/bin/php(Intel)。若仍是 /usr/bin/php,说明系统自带 PHP 仍在生效,后续所有扩展操作都会失效。
再执行 php --ini,记下 “Loaded Configuration File” 对应的路径,例如 /opt/homebrew/etc/php/8.2/php.ini——这是唯一需要编辑的配置文件。
最后运行 php -i | grep "extension_dir",确认扩展实际存放目录,如 /opt/homebrew/lib/php/pecl/20220829。这个路径必须和 extension=xxx.so 加载时指向的位置一致,否则 PHP 启动时直接跳过该行。
用 pecl 正确安装扩展(以 redis 为例)
方法一:指定 extension_dir 安装(推荐)
执行 pecl install -d extension_dir=/opt/homebrew/lib/php/pecl/20220829 redis。这一步强制 pecl 把编译好的 redis.so 放进正确的目录,避免后续权限或路径错位。
方法二:临时更换 TMPDIR 规避 /tmp 权限问题
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
若报 Permission denied in /tmp,先创建本地临时目录:mkdir -p $HOME/tmp,再运行 TMPDIR=$HOME/tmp pecl install redis。Mac 系统级 /tmp 在 SIP 保护下普通用户无法写入,硬用 sudo 会导致 .so 文件属主为 root,PHP-FPM 或内置服务器无法加载。
注意:pecl 安装成功只代表 .so 文件已落盘,不代表启用。必须手动配置 php.ini 才算完成。
手动启用扩展并验证
第一步:用文本编辑器打开 php --ini 输出的 php.ini 文件。
第二步:在文件末尾新增一行:extension=redis(不要加 .so 后缀,PHP 会自动补全;也不要写绝对路径,否则会报错)。
第三步:保存文件,关闭终端并新开一个,运行 php -m | grep redis。有输出即表示加载成功。
若仍无输出,检查是否漏掉 extension_dir 路径中的版本号子目录(如 20220829 对应 PHP 8.2),不同 PHP 小版本的数字不同,错一位就会找不到文件。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










