在Mac上使用Homebrew安装PHP

35

我正在尝试使用Homebrew在我的Mac机器上安装PHP。

我正在使用以下命令:

brew install php

然而,我遇到了以下错误:

Error: No available formula with the name "php" 
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
Error: No formulae found in taps.
5个回答

59

更新

在2018年2月,php72公式(当时的PHP当前版本)已经被移动到核心Homebrew tap,并重命名为php

homebrew/php tap 已于2018年1月停用,并于2018年3月31日存档。它包含的公式不再可用。

自2018年2月以来,使用Homebrew安装PHP非常容易:

$ brew install php

较旧的 PHP 版本 (仍在维护) 可以使用新的版本 @ 约定进行安装(PHP 7.1 是 php@7.1)。

原始答案(已不再可用)

PHP生态系统位于homebrew/php tap中。你可以在那里找到六个版本的解释器(从5.37.1),它们的扩展和一些与PHP相关的工具。

为了安装PHP,您必须首先安装homebrew/php tap(仅需一次):

$ brew tap homebrew/php
$ brew install php70

或者您可以通过运行以下命令一次性执行两个操作:

$ brew install homebrew/php/php70

你可以通过先搜索 php 来发现所有这些内容:
$ brew search php

更新到最新版本:$ brew tap homebrew/homebrew-php 然后 brew install php72。或者您可以查看选项以了解如何安装php72 brew options php72 - Vladimir Vukanac
1
同时请注意,从2018年3月更新开始,所有的php-XXX扩展模块都不再在Homebrew中了,您必须使用PECL进行安装。对于我来说,之前我会使用brew install php72-yaml,而现在我需要先运行pecl channel-update pecl.php.net,然后再运行pecl install yaml。如果您还没有安装它们,这可能需要您安装一些构建工具,例如autoconf。 - vick
错误:homebrew/php已被弃用。此tap现在为空,因为其所有配方都已迁移。 - Pratik Mehta
除非您需要特定版本的 PHP 来匹配您的生产环境,这通常是个好主意,也是现实生活中最常见的要求。但如果您有多个客户正在使用不同版本的 PHP,则可以考虑使用 phpenv - C. Sederqvist
谢谢,这对我有用,我正在使用Big Sur macOS 11.1。 - Ricardo Rivera Nieves

25

我在2021年使用Mac OS Big Sur时遇到了这个错误。

运行以下命令可以帮助解决问题:

  1. rm -rf $(brew --repo homebrew/core)
  2. brew tap homebrew/core
  3. brew install php

源链接


3
你让我的一天过得很愉快,昨天我的 MacOS 更新后,PHP 无法正常运行,经过了8个多小时的努力,现在终于安装成功了,非常感谢你。 - Chirag Joshi
2
这个解决方案对我很有效(macOS Monterey)。 - Quentin Veron
1
这对我帮助很大。 - Rone Clay Brasil

25

在使用brew安装PHP之后,

brew install php@7.3

或任何您需要的版本(可以是:php@7.2)

运行此命令以确保您已安装PHP:brew list | grep php,然后您需要手动添加以下别名:

alias php='/usr/local/Cellar/php@7.3/7.3.13/bin/php'

然后,为了使更改生效,您需要刷新终端。您可以使用命令:source ~/.bash_profile 或者关闭并重新打开终端。


5
谢谢,这个方法对我有用。我原本认为Homebrew的整个目的就是处理这些配置调整... - pixeline
1
@pixeline:如果macOS已经安装了工具(如php命令),并且突然被替换为不同版本,这对开发人员和操作系统来说将是一场噩梦。您不应该像上面提到的那样使用别名! 在别名中指定版本号只能在下一个次要版本之前起作用,那么PHP需要从bin目录获取的其他工具怎么办呢? 请在您的shell启动脚本末尾使用以下命令:export PATH="${HOMEBREW_PREFIX}/opt/php@7.3/bin:${PATH}" 然后所有7.3.x版本的命令(不仅仅是php)都可用并优先选择。 - C. Sederqvist
1
顺便提一下!我已经将上面注释中使用的变量$HOMEBREW_PREFIX映射到eval $(brew --prefix)的输出中, 如下所示: export HOMEBREW_PREFIX="$(brew --prefix)" 提及这是通常为/usr/local,但将其映射到变量使其更具可移植性。 - C. Sederqvist
在bash_profile中添加别名后,您可能需要重新启动终端。这样可以正常工作。至于路径,您可以自行搜索,因为当前的php@7.3/7.xxxxxxxx/bin不同。 - Anthony Kal
运行 brew install php@7.3 后,我收到了 Error: php@7.3 has been disabled because it is a versioned formula! 的错误提示。 - Gustavo Maximo

0

你可以运行

brew doctor

为了查看正在使用哪个分支,由于某些原因,一些公式不在原始位置...所以请检出brew的主分支

git -C $(brew --repo homebrew/core) checkout master

然后尝试运行

brew search php

看看它是否已列出


0
我找到了这个解决方案。
brew install shivammathur/php/php@7.3
brew install shivammathur/php/php@7.4
brew install shivammathur/php/php@8.0
brew install shivammathur/php/php@8.1
brew install shivammathur/php/php@8.2

并切换为:

brew link --overwrite php@7.4

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