it编程 > 编程语言 > Php

为什么在mac M2上使用brew安装PHP后,手动编译安装的php-redis模块在phpinfo()中未显示?

20人参与 2025-03-30 Php

为什么在mac m2上使用brew安装php后,手动编译安装的php-redis模块在phpinfo()中未显示?

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的配置。以下提供排查步骤:

  1. 验证php版本一致性: 使用 php -v 查看命令行 php 版本,然后通过浏览器访问 phpinfo() 页面,确认 web 服务器使用的 php 版本是否与命令行版本一致。版本不一致是常见原因。

  2. 检查php-fpm配置: 如果使用 php-fpm,需检查其配置文件(通常位于 /opt/homebrew/etc/php/7.3/php-fpm.d/ 目录下),确保其加载了正确的 php.ini 文件,并且该文件中包含 extension=redis 配置。

  3. 重启web服务器: 修改配置文件后,务必重启 web 服务器使更改生效(例如,使用 sudo nginx -s reload 重启 nginx)。

  4. 确认扩展文件路径: 检查 php.ini 文件中 extension_dir 的设置是否正确,并确保 redis.so 文件位于该目录下。使用 php -i | grep extension_dir 查看当前扩展目录。

  5. 权限问题: 确保 web 服务器拥有读取 redis.so 文件和 php.ini 文件的权限。如有必要,调整文件权限。

  6. 编译选项: 确认编译php-redis时使用的php版本与系统php版本一致,并且编译参数正确。

如果以上步骤仍无法解决问题,建议检查系统日志和 php 错误日志,获取更详细的错误信息,以便进一步排查。 仔细检查每个步骤,确保所有配置都正确无误。

以上就是为什么在mac m2上使用brew安装php后,手动编译安装的php-redis模块在phpinfo()中未显示?的详细内容,更多请关注代码网其它相关文章!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

PHP脚本如何获得控制Nginx启动停止的权限?

03-30

PHP连接MySQL后页面空白是什么原因?

03-30

为什么PHP保存远程图片后无法打开?如何解决?

03-30

如何通过PHP代码动态设置input的readOnly属性?

03-30

ThinkPHP如何优雅打印异常日志?

03-30

如何在不使用断言的情况下匹配非\[url\]标签外的@用户名?

03-30

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论