Homebrew升级php71至php@7.1后PHP扩展失效如何重新启用?
解决Homebrew升级php@7.1后扩展失效的问题
嘿,我之前也碰到过Homebrew把php71升级到php@7.1后,一堆扩展罢工的情况,给你整理了一套亲测有效的解决办法:
一、启用内置的opcache扩展
Homebrew的php@7.1确实把opcache这类核心扩展内置了,但默认可能没开启,操作步骤如下:
- 先找到php@7.1的配置目录,一般是
/usr/local/etc/php/7.1/ - 打开主配置
php.ini,或者直接在conf.d目录下新建ext-opcache.ini文件(这种方式更干净,推荐) - 在文件里添加这些配置:
zend_extension="opcache.so" opcache.enable=1 opcache.enable_cli=1 # 如果需要CLI模式也启用的话加这行 - 重启PHP-FPM服务:
brew services restart php@7.1 - 验证是否生效:终端执行
php -i | grep opcache,能看到一堆opcache的配置就说明成了
二、重新安装xdebug扩展
xdebug这类第三方扩展Homebrew不再单独提供包了,得用pecl来装,注意要选兼容php7.1的版本:
- 先确保你的终端环境用的是php@7.1,执行这个命令切换:
brew link php@7.1 --force --overwrite - 安装兼容的xdebug版本(2.9.8是支持php7.1的最新稳定版):
pecl install xdebug-2.9.8 - 安装完成后,pecl会提示你添加zend_extension的路径,你也可以自己去配置目录新建
ext-xdebug.ini,写入:zend_extension="xdebug.so" # 下面是常用的调试配置,按需调整 xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 - 同样重启php服务,然后用
php -i | grep xdebug验证是否成功加载
三、重新安装imagick扩展
imagick需要先装依赖的ImageMagick,注意选兼容的版本:
- 先装ImageMagick 6版本(php7.1和这个版本兼容性更好):
brew install imagemagick@6 - 然后用pecl装兼容的imagick版本(3.4.4支持php7.1):
pecl install imagick-3.4.4 - 配置扩展:在
conf.d目录新建ext-imagick.ini,写入:extension="imagick.so" - 重启服务后,执行
php -i | grep imagick验证
小提醒
- 每次改完配置或者装完扩展,一定要重启PHP服务,不然白忙活
- 如果pecl安装时提示找不到php路径,就指定php-config的路径,比如装xdebug时可以这么写:
pecl install --with-php-config=/usr/local/opt/php@7.1/bin/php-config xdebug-2.9.8 - 不知道配置文件在哪?终端执行
php --ini,输出里的Loaded Configuration File是主配置,Additional .ini files parsed就是扩展配置的目录,找这个准没错
内容的提问来源于stack exchange,提问作者dbj44
相关产品推荐
相关产品推荐

