「開發環境」讓 Valet 支援多個本地專案使用不同 PHP 版本

Destiny發表於2019-04-26

「開發環境」讓 Valet 支援多個本地專案使用不同 PHP 版本

Mac 開發環境

在開發過程中,開發環境有非常多如:Homestead Laradock Valet Xampp 等,它們在不同場景中都各有優勢,這裡我說一下我最喜愛的 Valet 它是 Mac 極簡主義者的 Laravel 開發環境,它建立一個站點可以說飛快,不用去做其他繁瑣的配置一條命令就搞定

Valet 缺陷

之前版本的 Valet 中沒有自帶命令去切換 PHP 版本,只能我們自己在終端中手動切換 PHP 然後再重啟 Valet。
在最新版 Valet 中支援 use 命令去切換 PHP 版本

valet use php@7.2

雖然簡化了我們手動切換 PHP 版本的操作,但是 use 命令切換的是所有本地專案的 PHP 版本,意思就是其他所有本地專案也會使用 php@7.2 這個版本,我們本地專案中如果有兩個專案需要使用不同 PHP 版本的話,就得來回 use 切換,這樣相當耗時對於急性子的同學相當不友好。

技巧

目前官方還沒有支援多站點不同 PHP 版本的操作,可能在將來版本中會支援,不過我們可以自己修改。

修改 PHP 監聽的 valet.sock 名稱

安裝完 Valet 之後會自動修改 PHP 配置讓其監聽 valet.sock,如我本機 php@7.2 配置檔案在 /usr/local/etc/php/7.2/php-fpm.d/www.conf,我們將 /Users/luoyan/.config/valet/valet.sock 修改成 /Users/luoyan/.config/valet/valet72.sock

「開發環境」讓 Valet 支援多個本地專案使用不同 PHP 版本

然後在重啟 Brew 管理的 PHP 服務

sudo brew services restart php@7.2 # 注意需要使用 sudo

這個時候你會發現在 ~/.config/valet 目錄中有一個 valet72.sock

「開發環境」讓 Valet 支援多個本地專案使用不同 PHP 版本

修改 Nginx 配置

因為 Valet 配置中預設讓 nginx 只監聽 valet.sock 程式,所以我們需要修改 nginx 配置檔案,Valet 有一個命令讓本地站點配置成 https 協議,並且生成站點 nginx 配置

# 到本地專案中根目錄
valet secure nxdai

在上面命令中注意修改你本地站點域名,這條命令會在 ~/.config/valet/Nginx 目錄下生成當前專案站點的 Nginx Https 的配置

「開發環境」讓 Valet 支援多個本地專案使用不同 PHP 版本

然後在配置檔案中搜尋 valet.sock 改成之前在 PHP-FPM www.conf 配置檔案中監聽的 valet72.sock

「開發環境」讓 Valet 支援多個本地專案使用不同 PHP 版本

注意這個配置檔案中有兩處 fastcgi_pass 要修改

最後重啟一下 Mac 本機 Nginx

sudo brew services restart nginx # 主要要用 sudo

到此整個修改流程完畢,其他站點 PHP 版本配置類似

效果圖

「開發環境」讓 Valet 支援多個本地專案使用不同 PHP 版本

有任何疑問可以到文章下方討論

將來的你一定會感謝現在努力的自己!

相關文章