「开发环境」让 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 版本

有任何疑问可以到文章下方讨论


destiny
15 声望5 粉丝

将来的你一定会感谢现在努力的自己!