使用brew在macOS Catalina上升级PHP到7.4

69

我试图在macOS Catalina上使用brew将PHP版本更新为7.4

我执行了brew install php@7.4

如果我检查我的版本php -v,我仍然看到旧版本PHP 7.3.11

我应该怎么做?

更新:

执行brew doctor后,我得到如下提示:

警告:Homebrew的sbin未在您的PATH中找到,但是您已经安装了将可执行文件放置在/usr/local/sbin中的公式。考虑设置路径,例如像这样:echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.profile


https://discourse.brew.sh/t/export-path-issues-for-macos/7732/3 - Salines
6个回答

194

你可以在php@7.2找到我类似的回答。

  • brew install php@7.4
  • brew link --force --overwrite php@7.4
  • brew services start php@7.4
  • export PATH="/usr/local/opt/php@7.4/bin:$PATH"
  • export PATH="/usr/local/opt/php@7.4/sbin:$PATH"

12
这个解决方案在 MacOS BigSur 上完美运行。 - juanitourquiza
3
不是使用 link --force 命令,而是需要执行 brew link --overwrite php@7.4 命令。 - Jannie Theunissen
1
是的,在操作中添加 --overwrite (它将考虑现有的 PHP 链接),谢谢 Jannie! - chenrui
我正在Catalina上进行这个操作,但是export PATH="/usr/local/opt/php@7.4/bin:$PATH"似乎需要很长时间。 - Andres SK
不,Catalina不支持这个。第一个命令返回“错误:php@7.4已被禁用,因为它是一个有版本的公式!”。接下来返回“错误:没有这样的桶:/usr/local/Cellar/php@7.4”。 - undefined
显示剩余4条评论

23

尝试:

brew update
brew upgrade php
php -v
brew services start php
或者
brew services restart php

如果你使用Apache服务器:

sudo apachectl restart

如果你使用nginx

sudo nginx -s reload

编辑:

brew unlink php@7.3
brew link php@7.4

1
谢谢,但是尝试了上述方法后,它仍然显示PHP 7.3.11?我需要更新到7.4版本,因为Composer的依赖关系需要。 - meez
@meez。服务重启后? - Salines
3
执行 brew unlink php@7.3 后,我收到了 Error: No such keg: /usr/local/Cellar/php@7.3 的错误消息。 - meez
@meez 运行 brew doctor - Salines

7

如果有人想将最新的8.1.2版PHP降级为7.4版,请尝试使用homebrew下面的命令:

安装PHP 7.4:

brew install php@7.4
brew services restart php
brew unlink php@8.1
brew link php@7.4

echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc

或者

export PATH="/usr/local/opt/php@7.4/bin:$PATH"
export PATH="/usr/local/opt/php@7.4/sbin:$PATH" 

1
使用MacOS终端。不要在vscode中使用终端。

很奇怪,尽管我已经在VS Code终端中多次成功地链接/取消链接了各种选项卡,但这个方法确实起作用了。 - Justin Hammond

0
  1. 我通过以下命令进入目录:cd /usr/local
  2. 通过以下命令查找文件位置:find /usr/local/ -name libphp7.so。(然后在此处获取文件位置:/usr/local//Cellar/php@7.4/7.4.23/lib/httpd/modules/libphp7.so。我将其复制。)
  3. 我通过以下命令打开文件:sudo vim /etc/apache2/httpd.conf
  4. 通过以下命令查找行:/libphp7.so
  5. 取消注释该行并更新该行:LoadModule php7_module /usr/local//Cellar/php@7.4/7.4.23/lib/httpd/modules/libphp7.so
  6. 通过以下命令重启apache:sudo apachectl restart
  7. 通过访问http://localhost/phpinfo.php验证PHP

0

最近我遇到了这个问题,所有的建议都没有起作用,直到我运行了以下命令:

xcode-select --install

然后我运行了之前尝试的命令,错误停止了,对于我的情况是php dyld:库未加载:/usr/local/opt/openldap/lib/libldap-2.4.2.dylib 引用自:/usr/local/opt/php@7.4/bin/php 原因:找不到映像 zsh:中止 php -v

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接