php環(huán)境搭建valet macbook m1/m2/m3 arm架構(gòu)

前陣剛?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_profile

valet 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列

image.png

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

valet isolate php@7.4
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容