我正在尝试在 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..