从 app.test 到小锁:valet 本地 HTTPS 的完整链路

从 app.test 到小锁:valet 本地 HTTPS 的完整链路

💡 原文中文,约11500字,阅读约需28分钟。
📝

内容提要

Valet 是一个本地开发工具,通过 dnsmasq 处理本地域名,使用 Nginx 接收请求,并通过 server.php 和 driver 找到项目入口。它简化了本地开发流程,自动生成和信任本地证书,实现 HTTPS,方便管理多个项目,提供高效的开发环境。

🎯

关键要点

  • Valet 是一个本地开发工具,通过 dnsmasq 处理本地域名。

  • Valet 使用 Nginx 接收请求,并通过 server.php 和 driver 找到项目入口。

  • Valet 自动生成和信任本地证书,实现 HTTPS,方便管理多个项目。

  • Valet 的工作流程包括 DNS 解析、Nginx 接收请求、server.php 分发请求和 PHP-FPM 执行 PHP。

  • Valet 支持多种框架,通过 driver 判断项目类型和入口文件。

  • Valet 的配置文件存储在用户目录下的 ~/.config/valet 中。

  • Valet 的 park 和 link 命令分别用于登记目录和创建符号链接。

  • Valet 通过本地 CA 实现 HTTPS,确保浏览器信任本地证书。

  • Valet 的 proxy 功能可以将流量转发到指定地址,支持多种后端服务。

🔎

延伸解读

Valet 的工作流程解析

Valet 的工作流程包括 DNS 解析、Nginx 接收请求、server.php 分发请求和 PHP-FPM 执行 PHP。理解这一流程有助于开发者在遇到问题时快速定位故障点,比如 DNS 问题、Nginx 配置错误或 PHP-FPM 未启动等。

HTTPS 的本地实现

Valet 通过创建本地 CA 并将其添加到系统信任中,实现本地 HTTPS。这一过程确保了浏览器能够信任本地生成的证书。需要注意的是,这种信任仅在本机有效,换台电脑后需重新配置。

park 与 link 命令的区别

Valet 的 park 和 link 命令都用于将本地域名映射到项目,但其工作原理不同。park 是登记一个父目录,适合管理多个项目;而 link 则是创建一个明确的符号链接,适合单个项目的快速访问。

延伸问答

Valet 是什么,它的主要功能是什么?

Valet 是一个本地开发工具,主要功能是通过 dnsmasq 处理本地域名,使用 Nginx 接收请求,并自动生成和信任本地证书,实现 HTTPS,方便管理多个项目。

Valet 如何实现本地 HTTPS?

Valet 通过创建一个本地 CA,并将其添加到系统信任中,使用该 CA 为本地域名签发证书,从而实现本地 HTTPS。

Valet 的 park 和 link 命令有什么区别?

park 命令用于登记一个父目录,自动识别子目录作为站点;而 link 命令则是创建一个明确的符号链接,将当前目录映射到一个特定的域名。

Valet 的工作流程是怎样的?

Valet 的工作流程包括 DNS 解析、Nginx 接收请求、server.php 分发请求和 PHP-FPM 执行 PHP,最终返回响应给浏览器。

Valet 如何支持多种框架?

Valet 通过 driver 判断项目类型和入口文件,支持多种框架的请求处理,确保不同框架的请求能够正确路由到相应的入口。

Valet 的配置文件存储在哪里?

Valet 的配置文件存储在用户目录下的 ~/.config/valet 中,包括 config.json、Sites、Drivers、Nginx、Log 和 Certificates 等子目录。

🏷️

标签

➡️

继续阅读