PHP安装扩展不生效!
可能是因为使用了mac自带的apache,在使用过程中因为需要支持php8,自己下载了php 通过自建签名的方式添加到httpd.conf配置文件里面去导致无法加载扩展。我屏蔽mac自带的apache,用自己下的就没有这个问题。
MacOS下安装phpredis,但是在phpinfo中redis扩展并未生效,只能在命令行中使用。
1. 运行环境
MacOS 12.3
系统自带apache
2). 当前使用的 php/php-fpm 版本?
PHP 版本:PHP 8.1.11 (cli)
php-fpm 版本:PHP 8.1.11 (fpm-fcgi)
Zend Engine v4.1.4
2. 问题描述
我打开了错误日志,发现每次重启apache时都会有:
PHP Warning: PHP Startup: Unable to load dynamic library 'redis.so' (tried: /opt/homebrew/lib/php/pecl/20210902/redis.so (dlopen(/opt/homebrew/lib/php/pecl/20210902/redis.so, 0x0009): tried: '/opt/homebrew/lib/php/pecl/20210902/redis.so' (code signature in <28C0C7B9-84CE-3CC1-BE4C-D773ACDCDB30> '/opt/homebrew/lib/php/pecl/20210902/redis.so' not valid for use in process: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?))), /opt/homebrew/lib/php/pecl/20210902/redis.so.so (dlopen(/opt/homebrew/lib/php/pecl/20210902/redis.so.so, 0x0009): tried: '/opt/homebrew/lib/php/pecl/20210902/redis.so.so' (no such file))) in Unknown on line 0
可能cli使用的ini文件和phpinfo不是一个,php --ini 检查一下
Linux 上是
CLI
和FPM
配置是分开的,你得去FPM
启用。macOS 估计也一样。
看看是不是内置服务器没重启,需要重启后,才会重新加载 php.ini 配置
1,Ctrl + C
2 ,php artisan serve
php重启一下,linux cli 和 fpm 是不同的 ini
你应该找到实际执行代码的phpini,建议创建一个info.php,写一行echo phpinfo(),然后去访问这个文件。装了2个一样的软件,很容易搞混,apache用的PHP可能不是你以为的那个PHP,apache可能也不是你以为的那个apache