20人参与 • 2025-03-30 • Php
mac m2系统下使用brew安装php后,手动编译安装php-redis扩展却无法在phpinfo()中显示的疑难解答
在 macos m2 系统上,使用 homebrew 安装 php 后,一些用户在手动编译并安装 php-redis 扩展时遇到问题:命令行可以正常使用 redis 扩展,php -m 命令也能显示 redis,php -r "if (new redis() == true){ echo "\r\n ok \r\n"; }" 命令也返回 ok,但 phpinfo() 却无法显示 redis 相关信息。
已确认 php.ini 文件路径为 /opt/homebrew/etc/php/7.3/php.ini,并通过 php -i | grep loaded 验证了该文件已加载,且已在其中添加了 extension=redis 配置。
问题根源可能在于 php 配置文件与 cli 环境的差异,以及php-fpm的配置。以下提供排查步骤:
验证php版本一致性: 使用 php -v 查看命令行 php 版本,然后通过浏览器访问 phpinfo() 页面,确认 web 服务器使用的 php 版本是否与命令行版本一致。版本不一致是常见原因。
检查php-fpm配置: 如果使用 php-fpm,需检查其配置文件(通常位于 /opt/homebrew/etc/php/7.3/php-fpm.d/ 目录下),确保其加载了正确的 php.ini 文件,并且该文件中包含 extension=redis 配置。
重启web服务器: 修改配置文件后,务必重启 web 服务器使更改生效(例如,使用 sudo nginx -s reload 重启 nginx)。
确认扩展文件路径: 检查 php.ini 文件中 extension_dir 的设置是否正确,并确保 redis.so 文件位于该目录下。使用 php -i | grep extension_dir 查看当前扩展目录。
权限问题: 确保 web 服务器拥有读取 redis.so 文件和 php.ini 文件的权限。如有必要,调整文件权限。
编译选项: 确认编译php-redis时使用的php版本与系统php版本一致,并且编译参数正确。
如果以上步骤仍无法解决问题,建议检查系统日志和 php 错误日志,获取更详细的错误信息,以便进一步排查。 仔细检查每个步骤,确保所有配置都正确无误。
以上就是为什么在mac m2上使用brew安装php后,手动编译安装的php-redis模块在phpinfo()中未显示?的详细内容,更多请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论