在使用Homebrew安装Mac上的PHP 7.1时出现错误

7
我正在尝试使用Homebrew安装PHP 7.1。
根据Homebrew网站上的说明,我应该输入以下命令:
brew install exolnet/deprecated/php@7.1
但是,我得到了以下错误信息:
configure: error: Please reinstall the iconv library.
重新安装也没有帮助。当前版本的libiconv是1.16。
如何解决这个错误?
4个回答

25
Icu4c的重新安装让我不得不强制重新安装PHP8,这破坏了我的初衷。因此,我找到了一些新的软件源,你根本不需要为这个icu4c的东西烦恼:
brew install shivammathur/php/php@5.6
brew install shivammathur/php/php@7.0
brew install shivammathur/php/php@7.1
brew install shivammathur/php/php@7.2
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 install shivammathur/php/php@8.3
brew install shivammathur/php/php@8.4

首先,使用类似于brew uninstall "php*"brew unlink php@7.1的命令删除所有的php安装。
您可能还需要untap其他的taps。我不得不运行以下命令:
brew untap exolnet/deprecated

正确安装。

然后,如果你愿意,删除 /usr/local/etc/php 文件夹

然后安装我上面链接的其中一个软件包。

对于 PHP 7.1 工作得很好:

~ php -v
PHP 7.1.33 (cli) (built: Dec  1 2020 01:14:43) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.33, Copyright (c) 1999-2018, by Zend Technologies

你还可以通过类似的命令快速切换PHP版本。
brew unlink php && brew link --overwrite --force php@7.2

等等。

GitHub存储库:https://github.com/shivammathur/homebrew-php

我找到这些软件包的来源:这里


1
这对我在 Mac M1 上起作用了。 - Usama Munir

9

1
太棒了,作为第一个答案!其他的都失败了。 - Stephane Gosselin
3
不再起作用。截至2021年4月15日,最佳答案为@Arda的下面回答。 - Patrick Fabrizius
1
brew tap exolnet/homebrew-deprecated
无法执行,报错为 brew tap exolnet/homebrew-deprecated
- Yury Litvinov

4

这在我使用的Big Sur上有效:

brew tap shivammathur/homebrew-php
brew install shivammathur/php/php@7.1

0
我在这方面遇到了问题:
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
  Referenced from: /usr/local/Cellar/php@7.1/7.1.33/bin/php
  Reason: image not found

我的解决方案是先手动下载https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb(因为直接安装公式会出现错误Calling Installation of icu4c from a GitHub commit URL is disabled!),然后:
$ brew reinstall icu4c.rb

接下来,将旧版icu4c中的.dylib文件复制到某个临时位置:
$ mkdir ~/temp
$ cp /usr/local/Cellar/icu4c/64.4/lib/*.dylib ~/temp

然后,重新安装icu4c:

$ brew reinstall icu4c

运行 PHP 7.1 并将每个必要的 .dylib 文件复制回您当前的 icu4c lib 文件夹,直到 PHP 7.1 不再出现错误。


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