Mac 下需要搭建一个 php 开发环境,试了一下 phpstudy 和 xampp,在 windows 上用的飞起的两款免费软件,在 mac 的表现相当差。phpstudy 安装后界面显示字体没有适配好,默认安装的 Apache2.4、nginx1.16 和 mysql5.7,想要切换到 nginx 启动报错 nginx: [emerg] open() "/Applications/phpstudy/WWW" failed (21: Is a directory)。xampp 就更离谱了,没有 control panel 的功能,默认安装了 apache 和 mysql,也没办法安装新软件。

还试了一款 MAMP 的开发工具。界面相当优秀,就是收费 $99 太贵了。但可以试用 15 天,所以这个可以先用着。然后就需要安装命令行的 php 来执行 composer 指令操作。

本地已经安装了 php@8.1 和 php@8.0。brew search php 显示可以安装的 php 版本,其中有一个 php@7.4。尝试安装报错:Error: php@7.4 has been disabled because it is a versioned formula!

百度前几有两种解决方法,一种是修改注释掉这个报错:

sudo vim /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/php@7.4.rb
# 找到 disable! date: "2022-11-28", because: :versioned_formula,使用 # 注释
#  disable! date: "2022-11-28", because: :versioned_formula

保存后再次安装还是会报这个错。

另一种方法是说 homebrew 放弃了 php 过时的版本并从 repo 中移除。需要使用其他第三方库安装:

https://github.com/shivammathur/homebrew-php

// 将第三方仓库加入 brew
brew tap shivammathur/php
// 安装PHP
brew install shivammathur/php/php@7.4

在安装第三方库的 php@7.4 时出现一个报错:Error: Command failed with exit 128: git

本地测试 git 存在,百度到解决方法:原来是 brew 本身的问题,brew -v 会报错,需要设置 safe.directory 路径。执行提示中的两条指令即可。

之后安装成功,将本地环境中的 php 切换成 php7.4

brew link --overwrite --force php@7.4

也可以设置 php 别称形式使用特殊版本的 php:

cd /usr/local/bin/
ln -s  /usr/local/opt/php@7.4/bin/php php74
php74 -v

参考:Mac PHP7.4安装macos 安装多版本PHP,composer