在 OSX 上为 PHP 5.6 安装 PHP 扩展,已弃用 homebrew/php

Install PHP Extension for PHP 5.6 on OSX with deprecated homebrew/php

今天我更新了 Brew,现在我无法安装 php56 扩展。

在我的 Mac 上安装了 "php56",今天我需要安装 "php56-redis",但是当我尝试安装此扩展时,Brew 返回了以下错误消息。

$ brew install php56-redis

Error: No available formula with the name "php56-redis" 
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
==> Searching for similarly named formulae...
==> Searching local taps...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

我在 homebrew/php 页面上看到这个 "tap" 已被弃用,目前只有 PHP 引擎迁移到 php@5.6,但扩展不起作用。

我找到了在 Mac 上使用旧版本 homebrew/php 的解决方案。

步骤 1

转到 homebrew/php 的最后一个有效版本 php56

https://github.com/Homebrew/homebrew-php/tree/966f6c318be2d80b4953cd8cdc112b9611eff8d9

并下载 Zip 文件。

homebrew-php-966f6c318be2d80b4953cd8cdc112b9611eff8d9.zip

步骤 2

转到

/usr/local/Homebrew/Library/Taps/homebrew/

并重命名 Tap

homebrew-php

old-homebrew-php

步骤 3

解压

homebrew-php-966f6c318be2d80b4953cd8cdc112b9611eff8d9.zip

/usr/local/Homebrew/Library/Taps/homebrew/ 

并重命名

中的文件夹

homebrew-php

步骤 4

使用 brew 搜索您的 php 扩展程序:

$ brew search php56-redis
==> Searching local taps...
homebrew/php/php56-redis
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...

步骤 5

安装没有更新的包:

HOMEBREW_NO_AUTO_UPDATE=1 brew install homebrew/php/<formula>

这将停止此命令的自制程序更新。如果您想阻止 shell 会话的自动更新,请使用:

export HOMEBREW_NO_AUTO_UPDATE=1

要永久设置它,请将其添加到您的 ~/.bash_profile.

首先安装exolnet/homebrew-deprecated

$ brew tap exolnet/homebrew-deprecated

安装已弃用的软件包后

$ brew install php@5.6

现在 2022 年,我只发现 https://github.com/shivammathur/homebrew-php 还在工作。

Error while doing `brew tap exolnet/homebrew-deprecated`

编辑:

事实证明,您可能还需要遗留 mysql 5.7 以及古老的 php,我最终使用了 lando(基于 docker)把它弄起来 运行。这是我的。lando.yml:

name: app
recipe: drupal6 # pulls also composer and drush as a colateral, any other php 5.6 application will work never the less
config:
  php: '5.6'
  database: mysql:5.7
  webroot: .

向我的考古学家同事们问好 ;)