Laravel Valet - macOS 极简主义者的开发环境
1. Laravel Valet 介绍
Laravel Valet 是 macOS 极简主义者的开发环境。Laravel Valet 将您的 mac 配置为在您的机器启动时始终在后台运行 Nginx,然后使用 Dnsmasq,Valet 代理 *.test
域上的所有请求指向安装在本地计算机上的站点
Valet 是一个超快的 Laravel 开发环境,不需要配置 /etc/hosts
,它大约使用 7 MB 的 RAM。
2. Laravel Valet 安装
Valet 需要 macOS 和 Homebrew。在安装前应该确保没有其他程序绑定到本地计算机的 80 端口
1. 将 homebrew 更新到最新版
brew update
2. 安装 PHP
brew install php
3. 使用 brew 安装 nginx
brew install nginx
4. 安装 composer 并将 Valet 安装为全局 composer 包
brew install composer
composer global require laravel/valet
5. 执行 Valet 的安装命令。这将安装和配置 Valet 和 DnsMasq。此外,Valet 所依赖的守护进程将配置为在系统启动时启动
valet install
3. 测试 Laravel Valet
查看 Valet 的版本号
valet --version
valet -V
ping 任意 *.test
格式的域名,显示的 IP 的都是 127.0.0.1
证明 Valet 安装成功
ping liang.test
ping itqaq.test
4. PHP 版本
Valet 允许您使用 valet use php@version
命令切换 PHP 版本
如果没有安装这个版本 Valet 将通过 Homebrew 安装指定的 PHP 版本
valet use php@7.4
也可以在项目的根目录中创建一个 . valetphprc
文件,在这个文件中记录站点应该使用的 PHP 版本
php@7.2
使用命令写入
echo php@7.2 > .valetphprc
创建此文件后,可以简单的执行 valet use
命令,该命令通过读取文件来确定站点首选 PHP 版本
即使你安装了多个 PHP 版本,Valet 一次也只提供一个 PHP 版本
valet use
5. 服务站点
安装 Valet 后,就可以开始为应用程序提供服务了。Valet 提供 park
和 link
两个命令来帮助您为应用程序提供服务
1. valet park 命令
park 命令会注册一个包含您的应用程序的目录,一旦目录被 Valet “认可”,也就是被 park
,该目录中的所有子目录都可以通过 http://子目录名.test
访问。此外,valet 自动允许使用通配符子域访问该站点(比如: http://foo.子目录名.test
)
假设目录结构如下:
code
├── html
├── css
在 code 目录中执行下面命令(code 目录被 valet 认可了)
valet park
然后就可以通过下面域名访问子目录
http://html.test
http://css.test
2. valet link 命令
park 命令用于给目录下的所有子目录配置站点,而如果只是想在目录中提供单个站点而不是整个目录,则需要使用 link 命令
使用 link 命令将应用程序链接到 valet 后,可以使用其目录名称作为域名访问该应用程序,当然,也可以指定访问名称。link 命令像 park 命令一样支持使用通配符子域访问该站点
给当前目录配置站点:
# 访问域名默认为: 当前目录名.test
valet link
# 访问域名默认为: name.test
valet link [name]
假设当前在 laravel 目录,使用示例:
# 访问域名: laravel.test
valet link
# 访问域名: blog.test
valet link blog
查看使用 link 命令添加的站点
valet links
删除通过 link 命令添加的站点
# 删除当前目录的 link
valet unlink
# 删除指定名称的 link
valet unlink name
6. 定制 Valet 驱动
Valet 是为 Laravel 定制的开发环境,默认是不支持 ThinkPHP 等常用框架和 CMS
但是可以自己编写 Valet 驱动程序在 Valet 本身不支持的框架或 CMS 上运行 PHP 应用程序提供服务
安装 Valet 时,会在 ~/.config/valet/Drivers
目录中创建一个包含 SampleValetDriver.php
,这是一个驱动程序实现示例,用于演示如何编写自定义驱动程序,编写驱动程序只需要实现三个方法: servers
、isStaticFile
、frontControllerPath
这三个方法都接收 $sitePath
、$siteName
、$uri
的值作为它们的参数
$sitePath 是站点的绝对路径地址,示例:
/Users/liang/code/api/news
$siteName 是域名的站点名称
访问域名: http://news.test,那么 $siteName 的值为: news
访问域名: http://api.news.test,那么 $siteName 的值为: api.news
$uri 是请求地址中的 uri 值(不包含查询字符串)
/index/abc
7. Valet 常用命令
命令 | 描述 |
---|---|
valet list | 列出所有命令 |
valet park | 目录下的所有子目录作为访问站点 |
valet paths | 查看所有被 park 的目录 |
valet forget | 将当前目录从已 park 列表中删除 |
valet link [name] | 配置单个站点 |
valet links | 查看所有通过 link 配置的站点 |
valet unlink [name] | 删除 links 列表中的站点 |
valet start | 启动 valet |
valet stop | 停止 valet |
valet restart | 重启 valet |
valet uninstall | 卸载 valet |
valet use php@version | 切换 Valet 使用的 PHP 版本 |
valet use | 从 .valetphprc 文件读取首选 PHP 版本 |
相关文章
- macOS 使用 SSH 连接服务器
- TP5.0、TP5.1、TP6.0 下载方式及环境要求
- Laravel 路由定义文件
- 使用docker搭建Nginx + PHP + mysql环境
- python虚拟环境工具virtualenv和Virtualenvwrapper的安装和使用
- 怎么在电脑上配置JAVA环境
- 实现在Java环境中使用SM2加密算法
- Laravel 10 更改密码后如何保持登录状态?
- 聊聊在不确定环境下的个人成长
- Spacedrive - 适用于 Linux、Windows、macOS 的最佳文件管理器
- Linux环境下Java应用程序的部署全攻略
- 在Linux环境下高效进行软件开发的全面指南
- Java负载均衡环境下的用户会话一致性实践与代码示例
- 在Linux环境中轻松实现MySQL数据库定时备份
- 在 Linux/macOS 上将 Powerlevel10k 配置为 Zsh 主题