前阵刚入手macbook m2苹果本,刚好用来重新搭建一下PHP环境
中间尝试了很多的搭建方式包含最便捷的docker,但当我发现一切准备就绪时,启动docker竟然要8G内存,我整个人都不淡定了,看来docker对于arm架构还不是很友好。无奈,还能选一个最简单的方式,使用homebrew和laravel最早推荐的valet配合使用,所有东西运行起来可能不过1G,valet只需要100M内存,让我舒心不少。
一、安装homebrew
来到 homebrew官网 复制命令到终端执行:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
执行后homebrew安装完成,中间有可能报错如下图:
Run these two commands in your terminal to add Homebrew to your PATH:
解决办法:
执行你看到的命令即可echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/<换成你的uesrname>/.config/fish/config.fish
eval "$(/opt/homebrew/bin/brew shellenv)"
二、安装 mysql
我这里安装的是 mysql 5.7
$ brew install mysql@5.7
安装小技巧:当你要安装一些软件时可以通过下面的命令先进行搜索
brew search mysql
![]()
// 启动 mysql
brew services start mysql@5.7
我mac本地使用的可视化工具是 sequel Pro
用了很久了,轻量支持arm架构,页面简洁; 这里就不放安装方法了,比较简单百度有很多。
三、安装 redis
$ brew install redis
启动 redis
brew services start redis
我mac本地使用的可视化工具是 another Redis Desktop Manager
用着不错,可设置汉化。
another Redis Desktop Manager 设置汉化:
![]()
四、安多版本 PHP
从下图可看出 brew 已经不在维护低版本php了
所以我们使用第三方库进行安装:
// 先将第三库加入brew
brew tap shivammathur/php// 安装php@7.2
brew install shivammathur/php/php@7.2
// 安装php@7.4
brew install shivammathur/php/php@7.4
// 安装php@8.2
brew install shivammathur/php/php@8.2// 启动php
brew services start php@8.2
目前来讲这三个版本是取比较常见的。
那怎么来完成php切换版本呢,这里还是有点麻烦的,如果你想在mac终端中切换PHP,那需要配置环境来完成切换,在说切换前先了解一下mac arm架构环境变量如何配置。
在mac M系列CPU中增加了一个 zshrc 文件,不过我们可以通过一个小变化让他和这前配置一样。
// 打开zshrc文件
vim ~/.zshrc
// 在文件最后一行加入如下代码:
source ~/.bash_profile// 然后在打开 bash_profile 文件
vim ~/.bash_profile
// 加入下面代码
# PHP
export PATH="/opt/homebrew/opt/php@7.2/bin:$PATH"
export PATH="/opt/homebrew/opt/php@7.2/sbin:$PATH"
#export PATH="/opt/homebrew/opt/php@7.4/bin:$PATH"
#export PATH="/opt/homebrew/opt/php@7.4/sbin:$PATH"
#export PATH="/opt/homebrew/opt/php@8.2/bin:$PATH"
#export PATH="/opt/homebrew/opt/php@8.2/sbin:$PATH"
// 然后执行命令让环境变量生效
source ~/.bash_profile
安装php有时会报错
Error: php@7.4: Failed to download resource "webp"
Error: php@7.4: Failed to download resource "gmp"解决办法:更新
brew update -v
brew upgrade更新完成后在执行php安装
如果还不行可能是被墙住了,走下梯子就行了
fish: Unknown command: php 环境变量设置完成后还是找不到php
解决办法:
brew link --overwrite --force php@8.1
如果你改变版本请删除路径前的#号,完成编辑后执行 source ~/.bash_profile 或 source ~/.zshrc 命令。
小知识:~/.bash_profile 和 ~/.zshrc的区别
~/.bash_profile
~/.bash_profile 文件是针对 Bash shell 的配置文件。当 Bash shell 以 login 方式执行时,它会读取 ~/.bash_profile 文件。如果该文件不存在,它会尝试读取 ~/.bash_login 文件。如果两者都不存在,它则会读取 ~/.profile 文件。也就是说,当你作为登录用户使用 Bash shell 的时候,这个文件会被读取并执行,它的作用是初始化你的 bash shell 环境设置。~/.zshrc
而 ~/.zshrc 文件则是针对 Zsh shell 的配置文件。无论登录用户还是非登录用户,都可以读取这个文件。在 Zsh shell 被打开时,或者当 macOS 关机重启后,这个文件都会被自动执行。也就是说,无论何时你打开一个新的终端窗口,无论你从何处登录到系统,Zsh shell 都会首先读取并执行这个文件中的命令,然后再进入用户主目录下寻找并执行那里面的 ~/.zshrc 文件(如果存在)。说人话就是,bash_profile 是在当前窗口执行后立即生效,切换窗口无效;
zshrc 是在任何状态下包含电脑重启都会生效,所以会在zshrc中加入 source ~/.bash_profile
五、简单的brew命令
说了这么多,简单介绍一下 brew 命令,如何控制这些他们的启停
brew对每个工具都守护进程,当程序被杀死或意外退出他都会自动在启动;
// 启停各个服务[start、stop、restart]
brew services stop php@7.2
brew services stop mysql@5.7
brew services stop redis
请记住当你有多个服务版本或指定了安装某个版本,在启停时一定要带上版本号,如 php@7.2
其实brew是自带link命令进行版本切换的,不过我感觉不是太好用。也许你有什么高见一定在评论区告诉我~
// 直接切换到 php7.4
brew link --overwrite php@7.4
// 或者先取消链接
brew unlink php
//然后再链接
brew link php@7.4 --force
![]()
打开新窗口后,php会变更版本
![]()
设置mysql、redis 开机启动
正常在你启动redis或mysql服务时,他会自动加入自启项:下面是手动操作
// 进入redis目录,请根据自己的版本进入目录
cd /opt/homebrew/Cellar/redis/7.2.4/// 复制plist文件到自启文件夹
cp /opt/homebrew/Cellar/redis/7.2.4/homebrew.mxcl.redis.plist /Users/<你的电脑用户名>/LaunchAgents/复制后会有弹窗
通用中也会有内容
// 用命令查看是否已经加入自启项
launchctl list |grep redis
六、安装 composer
安装composer很简单累死安装brew。但前提先安装php
按照官网步骤复制粘贴即可
![]()
省事直接 brew install composer
七、安装 valet 工具
// 安装valet
composer global require laravel/valet// 加入环境变量
echo 'export PATH=~/.composer/vendor/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profilevalet install
valet 环境路径
/opt/homebrew/Cellar/php@7.2/7.2.34_5/bin
/Users/shaolubin/.config/valet/Nginx
/Users/shaolubin/.config/valet/Drivers
/opt/homebrew/Cellar/php@7.2/7.2.34_5/bin
八、 valet升级3.0,可支持多版本php
valet 3.0之后可支持多版本php,可通过项目支持不同php版本
valet升级
composer global require "laravel/valet:^3.0"
安装
valet install
valet links 就可看到php version列

隔离当前项目
cd 到项目目录下执行你想使用的PHP版本valet isolate php@7.4
网友评论