Laravel本地开发环境选择Homestead还是Valet?

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: Laravel 提供了两种本地开发环境 Homestead 和 Valet。 Homestead 和 Valet 的不同之处在于目标受众和本地开发的方式。

Valet 还是 Homestead


Laravel 提供了两种本地开发环境 Homestead 和 Valet。 Homestead 和 Valet 的不同之处在于目标受众和本地开发的方式。

Homestead 提供了一个完整的、具有自动化的 Nginx 配置的 Ubuntu 虚拟机。如果你想要完全虚拟化的 Linux 开发环境或 Windows/Linux,Homestead 是一个不错的选择。


Valet 仅支持 Mac,并要求你将 PHP 和数据库服务器直接安装到本地机器上。


这可以很容易地通过使用 Homebrew 相关命令来实现,比如 brew install php72brew install mysql

Valet 提供了一个极快的、资源消耗最少本地开发环境,非常适合只需要 PHP/MySQL 并且不需要虚拟开发环境的开发人员。


Valet 和 Homestead 都是配置 Laravel 开发环境的绝佳选择。选择哪一个仅仅取决于个人喜好和团队的需求。


我的选择


没错,我用 Windows 开发时使用的 Homestead ,用Mac开发之后就改用 Valet 了。


Valet 简介


Valet 是 Mac 极简主义者的 Laravel 开发环境。没有 Vagrant,不需要配置 /etc/hosts 文件。甚至可以使用本地隧道公开共享你的站点。


Laravel Valet 为您的 Mac 设置了开机后始终在后台运行 Nginx 服务。Valet 使用 DnsMasq 将所有指向安装在本地的计算机站点请求代理到 *.test 结尾的域名上。


简单高效的完美诠释:一个速度极快的 Laravel 开发环境只占用 7MB 内存。


Valet 并不是想要完全替换 Vagrant 或 Homestead,只是提供另外一种使用起来更加灵活、方便、以及内存占用更小的选择。


Valet 支持但不局限于以下内容:


Laravel
Lumen
Bedrock
CakePHP 3
Concrete5
Contao
Craft
Drupal
Jigsaw
Joomla
Katana
Kirby
Magento
OctoberCMS
Sculpin
Slim
Statamic
Static HTML
Symfony
WordPress
Zend


Valet的安装


Valet 需要 macOS 系统和 Homebrew。在安装之前,要确保没有其它程序(如 Apache 或 Nginx)占用了本地机器的 80 端口。


  • 使用 brew update 将 Homebrew 安装或更新到最新版本。
  • 使用 Homebrew 的 brew install php 命令安装 PHP 7.3。
  • 安装 Composer.
  • 使用 Composer 的 composer global require laravel/valet 命令安装 Valet。并确保 ~/.composer/vendor/bin 目录在系统的 "PATH" 中。
  • 运行 valet install 命令来配置和安装 Valet 和 DnsMasq,并注册 Valet 后台服务,随系统运行自行启动。


安装完 Valet 后,可以尝试使用类似 ping xxx.test 的命令在终端上 ping 任何一个 *.test 的域名。如果 Valet 安装正确,可以在终端上看到来自 127.0.0.1 的响应。


每次机器启动时,Valet 会自动启动其进程。所以只要完成了 Valet 的初始化,就无需再次运行 valet start 或 valet install。


如何使用其它域名


默认情况下,Valet 使用 .test 顶级域名为你的项目提供服务。如果你想使用其它域名,可以使用 valet tld tld-name 命令。

例如,如果你想使用 .xyz 来代替 .test,运行 valet tld xyz,Valet 会自动将站点顶级域名改为 *.xyz 。


数据库


如果你要使用数据库,请在终端运行 brew install mysql@5.7 安装 MySQL。

一旦安装完成,你可以使用 brew services start mysql@5.7 命令启动 MySQL。

然后,你可以使用 root 用户名和空字符串密码连接到 127.0.0.1 的数据库。


指定 PHP 版本


Valet 允许你使用 valet use php@version 命令来切换 PHP 版本。

如果指定版本尚未安装,Valet 将通过 Brew 来安装指定的 PHP 版本:


valet use php@7.2
valet use php


Valet的升级


可以在终端使用 composer global update 命令来更新 Valet。


升级后,如有需要,最好再次运行 valet install ,以便 Valet 对配置文件进行升级。


升级到 Valet 2.0


Valet 2.0 将 Valet 底层的 Web 服务器从 Caddy 转移到 Nginx。

升级到此版本之前,你应该运行以下命令停止并卸载现有的 Caddy 进程:


valet stop
valet uninstall


接下来,就根据你采用的安装方式来升级 Valet (通常是通过 Git 或 Composer )。


如果是通过 Composer 安装了 Valet ,则应使用以下命令更新到最新的主要版本:


composer global require laravel/valet


如果更新了 Valet 的源码,应该执行 install 命令:


valet install
valet restart


升级过后,可能需要重新设置或重新链接你的站点。


服务站点


安装了 Valet 之后,就可以开始设置站点。

Valet 提供两个命令来为 Laravel 的站点提供服务:park 和 link。


park 命令


运行 mkdir ~/Sites 命令在 Mac 上创建一个新的目录。

接下来,运行 cd ~/Sites 和 valet park 将当前的工作目录作为 Valet 搜索站点的路径。

接下来,在这个目录中创建一个新的 Laravel 站点,比如:laravel new blog。


在浏览器中打开 blog.test

就这么简单,在 『parked』的目录中创建的任何 Laravel 项目都将自动使用这种方式访问: folder-name.test


link 命令


如果要在目录中提供单个站点而不是整个目录,就使用 link 命令。

要使用该命令,先在终端里切换到你的某个项目并运行 valet link app-name。

Valet 会在 ~/.config/valet/Sites 中创建一个符号链接指向当前的目录。


运行 link 命令后,你可以在浏览器通过这种方式访问站点: app-name.test

运行 valet links 命令可以查看所有目录链接的列表。你还可以使用 valet unlink app-name 来删除符号链接。


注意:可以使用 valet link 将多个(子)域名指向同一个应用。要添加子域名或其它域名到应用,可以在应用目录下运行 valet link subdomain.app-name。


使用 TLS 保护站点


默认情况下,Valet 服务站点通过纯 HTTP 的方式。


但是,如果想一个站点使用 HTTP/2 通过加密 TLS 提供服务,使用 secure 命令。


例如,如果站点通过 Valet 在 laravel.test 域上提供服务,你应当运行如下的命令去保护它:


valet secure laravel


要一个站点『解除保护』并恢复为通过纯 HTTP 提供服务它的流量,使用 unsecure 命令。


与 secure 命令一样,该命令接受你希望去解除保护的主机名称:


valet unsecure laravel


总结


好了,上述就是 Valet 的基础功能,是不是非常简单高效。

上述这些功能已经能够满足我们在本地开发了,当然 Valet 支持的功能不止这些,还包括:

共享站点、配置网站的环境变量、自定义 Valet 驱动、进程相关操作等等。


相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
8天前
|
缓存 监控 JavaScript
环境搭建:Vue项目的开发环境和生产环境配置
【4月更文挑战第23天】本文指导Vue开发者配置开发和生产环境,强调了两者目的和特点。开发环境用于编写、测试和调试,侧重快速反馈和调试工具;生产环境注重稳定性、效率和安全性,需进行代码优化、错误处理和日志监控。配置步骤包括安装Node.js和npm,使用Vue CLI,配置Webpack、热重载和源码映射。生产环境要实现代码分割、压缩、最小化,启用CSP、HTTPS,优化静态资源和缓存策略。环境配置应随项目发展和技术进步持续优化。
|
5月前
|
Rust 数据可视化 开发工具
rustlings本地开发环境配置
rustlings本地开发环境配置
25 0
|
5月前
|
缓存 小程序 中间件
laravel5.8(一)安装及部署
Laravel,传说中美丽优雅的框架。之前一直在使用国产的thinkphp框架,可能是万物发展到最后都会统一吧,thinkphp的功能与laravel是越来越统一了 thinkphp5.1也加入了laravel一直存在的中间件功能。 但是相对来说laravel还是比较高端,入门比较容易,但是想要完全搞清楚,还是比较难,之前了解的也比较少。 高端的东西多少还得了解点。 一:安装框架 安装大概有两种方式 1:composer安装(网好的时候进行) 修改 composer 的全局配置文件(推荐方式),然后输入安装命令 bash 复制代码 composer config -g repo.packagi
53 0
laravel5.8(一)安装及部署
|
10月前
|
JavaScript 前端开发
Vue项目本地开发完成部署到服务器后报404,这到底是什么原因呢?
Vue项目本地开发完成部署到服务器后报404,这到底是什么原因呢?
714 0
|
测试技术
vue-cli3打包项目不同环境:开发环境、生产环境、测试环境
vue-cli3打包项目不同环境:开发环境、生产环境、测试环境
214 0
|
JavaScript 前端开发 Ubuntu
NodeJS 环境
NodeJS 环境
99 0
|
NoSQL 关系型数据库 MySQL
使用 Rainbond 搭建本地开发环境
在开发之前,你需要在本地安装各种开发工具和服务,比如:Mysql、Redis、Nacos 等等,我们都知道在个人电脑上安装这些服务相当的繁琐,可能会遇到很多问题,环境问题、依赖问题等等。
|
JavaScript
用nodejs快速搭建本地环境
用nodejs快速搭建本地环境
91 0
【Django | 开发】分离上线环境与开发环境(多settings配置)
【Django | 开发】分离上线环境与开发环境(多settings配置)
【Django | 开发】分离上线环境与开发环境(多settings配置)
|
JSON 监控 JavaScript
部署nodejs项目到服务器的一些总结
安装nodejs 首先在服务器上安装nodejs并配置环境,这个可以参考官方的文档,就不细说了
479 0