前陣剛?cè)胧謒acbook m2蘋果本,剛好用來(lái)重新搭建一下PHP環(huán)境
中間嘗試了很多的搭建方式包含最便捷的docker,但當(dāng)我發(fā)現(xiàn)一切準(zhǔn)備就緒時(shí),啟動(dòng)docker竟然要8G內(nèi)存,我整個(gè)人都不淡定了,看來(lái)docker對(duì)于arm架構(gòu)還不是很友好。無(wú)奈,還能選一個(gè)最簡(jiǎn)單的方式,使用homebrew和laravel最早推薦的valet配合使用,所有東西運(yùn)行起來(lái)可能不過(guò)1G,valet只需要100M內(nèi)存,讓我舒心不少。
一、安裝homebrew
來(lái)到 homebrew官網(wǎng) 復(fù)制命令到終端執(zhí)行:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
執(zhí)行后homebrew安裝完成,中間有可能報(bào)錯(cuò)如下圖:
Run these two commands in your terminal to add Homebrew to your PATH:
解決辦法:執(zhí)行你看到的命令即可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
安裝小技巧:當(dāng)你要安裝一些軟件時(shí)可以通過(guò)下面的命令先進(jìn)行搜索
brew search mysql
// 啟動(dòng) mysql
brew services start mysql@5.7
我mac本地使用的可視化工具是 sequel Pro 用了很久了,輕量支持arm架構(gòu),頁(yè)面簡(jiǎn)潔; 這里就不放安裝方法了,比較簡(jiǎn)單百度有很多。
三、安裝 redis
$ brew install redis
啟動(dòng) redis
brew services start redis
我mac本地使用的可視化工具是 another Redis Desktop Manager 用著不錯(cuò),可設(shè)置漢化。
another Redis Desktop Manager 設(shè)置漢化:
四、安多版本 PHP
從下圖可看出 brew 已經(jīng)不在維護(hù)低版本php了
所以我們使用第三方庫(kù)進(jìn)行安裝:
// 先將第三庫(kù)加入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// 啟動(dòng)php
brew services start php@8.2
目前來(lái)講這三個(gè)版本是取比較常見的。
那怎么來(lái)完成php切換版本呢,這里還是有點(diǎn)麻煩的,如果你想在mac終端中切換PHP,那需要配置環(huán)境來(lái)完成切換,在說(shuō)切換前先了解一下mac arm架構(gòu)環(huán)境變量如何配置。
在mac M系列CPU中增加了一個(gè) zshrc 文件,不過(guò)我們可以通過(guò)一個(gè)小變化讓他和這前配置一樣。
// 打開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"
// 然后執(zhí)行命令讓環(huán)境變量生效
source ~/.bash_profile
安裝php有時(shí)會(huì)報(bào)錯(cuò)
Error: php@7.4: Failed to download resource "webp"
Error: php@7.4: Failed to download resource "gmp"解決辦法:更新
brew update -v
brew upgrade更新完成后在執(zhí)行php安裝
如果還不行可能是被墻住了,走下梯子就行了
fish: Unknown command: php 環(huán)境變量設(shè)置完成后還是找不到php
解決辦法:
brew link --overwrite --force php@8.1
如果你改變版本請(qǐng)刪除路徑前的#號(hào),完成編輯后執(zhí)行 source ~/.bash_profile 或 source ~/.zshrc 命令。
小知識(shí):~/.bash_profile 和 ~/.zshrc的區(qū)別
~/.bash_profile
~/.bash_profile 文件是針對(duì) Bash shell 的配置文件。當(dāng) Bash shell 以 login 方式執(zhí)行時(shí),它會(huì)讀取 ~/.bash_profile 文件。如果該文件不存在,它會(huì)嘗試讀取 ~/.bash_login 文件。如果兩者都不存在,它則會(huì)讀取 ~/.profile 文件。也就是說(shuō),當(dāng)你作為登錄用戶使用 Bash shell 的時(shí)候,這個(gè)文件會(huì)被讀取并執(zhí)行,它的作用是初始化你的 bash shell 環(huán)境設(shè)置。~/.zshrc
而 ~/.zshrc 文件則是針對(duì) Zsh shell 的配置文件。無(wú)論登錄用戶還是非登錄用戶,都可以讀取這個(gè)文件。在 Zsh shell 被打開時(shí),或者當(dāng) macOS 關(guān)機(jī)重啟后,這個(gè)文件都會(huì)被自動(dòng)執(zhí)行。也就是說(shuō),無(wú)論何時(shí)你打開一個(gè)新的終端窗口,無(wú)論你從何處登錄到系統(tǒng),Zsh shell 都會(huì)首先讀取并執(zhí)行這個(gè)文件中的命令,然后再進(jìn)入用戶主目錄下尋找并執(zhí)行那里面的 ~/.zshrc 文件(如果存在)。說(shuō)人話就是,bash_profile 是在當(dāng)前窗口執(zhí)行后立即生效,切換窗口無(wú)效;
zshrc 是在任何狀態(tài)下包含電腦重啟都會(huì)生效,所以會(huì)在zshrc中加入 source ~/.bash_profile
五、簡(jiǎn)單的brew命令
說(shuō)了這么多,簡(jiǎn)單介紹一下 brew 命令,如何控制這些他們的啟停
brew對(duì)每個(gè)工具都守護(hù)進(jìn)程,當(dāng)程序被殺死或意外退出他都會(huì)自動(dòng)在啟動(dòng);
// 啟停各個(gè)服務(wù)[start、stop、restart]
brew services stop php@7.2
brew services stop mysql@5.7
brew services stop redis
請(qǐng)記住當(dāng)你有多個(gè)服務(wù)版本或指定了安裝某個(gè)版本,在啟停時(shí)一定要帶上版本號(hào),如 php@7.2
其實(shí)brew是自帶link命令進(jìn)行版本切換的,不過(guò)我感覺不是太好用。也許你有什么高見一定在評(píng)論區(qū)告訴我~
// 直接切換到 php7.4
brew link --overwrite php@7.4
// 或者先取消鏈接
brew unlink php
//然后再鏈接
brew link php@7.4 --force
打開新窗口后,php會(huì)變更版本
設(shè)置mysql、redis 開機(jī)啟動(dòng)
正常在你啟動(dòng)redis或mysql服務(wù)時(shí),他會(huì)自動(dòng)加入自啟項(xiàng):下面是手動(dòng)操作
// 進(jìn)入redis目錄,請(qǐng)根據(jù)自己的版本進(jìn)入目錄
cd /opt/homebrew/Cellar/redis/7.2.4/// 復(fù)制plist文件到自啟文件夾
cp /opt/homebrew/Cellar/redis/7.2.4/homebrew.mxcl.redis.plist /Users/<你的電腦用戶名>/LaunchAgents/復(fù)制后會(huì)有彈窗
通用中也會(huì)有內(nèi)容
// 用命令查看是否已經(jīng)加入自啟項(xiàng)
launchctl list |grep redis
六、安裝 composer
安裝composer很簡(jiǎn)單累死安裝brew。但前提先安裝php
按照官網(wǎng)步驟復(fù)制粘貼即可
省事直接 brew install composer
七、安裝 valet 工具
// 安裝valet
composer global require laravel/valet// 加入環(huán)境變量
echo 'export PATH=~/.composer/vendor/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profilevalet install
valet 環(huán)境路徑
/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升級(jí)3.0,可支持多版本php
valet 3.0之后可支持多版本php,可通過(guò)項(xiàng)目支持不同php版本
valet升級(jí)
composer global require "laravel/valet:^3.0"安裝
valet install
valet links 就可看到php version列

隔離當(dāng)前項(xiàng)目
cd 到項(xiàng)目目錄下執(zhí)行你想使用的PHP版本valet isolate php@7.4








