在 macOS 中使用 Homebrew 将 PHP 从 7.1 升级到 7.2,但仍显示 PHP 7.1

在 macOS 中使用 Homebrew 将 PHP 从 7.1 升级到 7.2,但仍显示 PHP 7.1

我正在尝试在 macOS 上和使用 Homebrew 将我的 PHP 版本从 7.1 升级到 7.2。

我执行了以下步骤:

brew install php72

brew services stop php71
brew unlink php71

brew link php72
brew services start php72

一切似乎都运行正常。当我这样做时,php --version我得到了:

PHP 7.2.9 (cli)(构建于:2018 年 8 月 16 日 21:40:59)(NTS)版权所有 (c) 1997-2018 The PHP Group Zend Engine v3.2.0,版权所有 (c) 1998-2018 Zend Technologies 和 Zend OPcache v7.2.9,版权所有 (c) 1999-2018,由 Zend Technologies 提供

但是如果我尝试运行 PHP 脚本,phpinfo()信息仍然显示 PHP 版本 7.1.20。

如果我运行,brew services list则会运行以下服务:

dnsmasq    started root     /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
mariadb    started xy       /Users/xy/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
nginx      started root     /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
php        started root     /Library/LaunchDaemons/homebrew.mxcl.php.plist
[email protected]    stopped

可能是什么原因?

答案1

brew unlink php71并将brew link php72调整您的 php 命令行到正确的路径和版本,但除非您更改其配置文件,否则 Apache 不会受到影响。

首先,找到您的httpd.conf文件路径:

httpd -V | grep SERVER_CONFIG_FILE

您还可以检查:

apachectl -t -D DUMP_INCLUDES

然后:

  • 打开httpd.conf文件并找到以LoadModule php
  • 用 注释此行#,并添加您的 7.2 行。您可以通过在终端中查询以下命令来获取您的行:
  • brew info [email protected] | grep LoadModule
  • 它应该看起来像:LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so
  • 最后,重新启动 Apache:sudo apachectl restart
  • 你的脚本现在应该使用 php7.2 版本运行

还有关于在这里使用 php 切换器安装后,您可以像这样从一个版本切换到另一个版本(它将自动链接 Apache 和命令行):

sphp 7.1
sphp 7.2
sphp 5.6
etc..

相关内容