Laravel Valet 是一个Mac下面的极简的开发环境,不但可以本地开发,还可以分享到公网访问,当你的电脑开机后会在后台一直启动  Caddy ,Valet通过  DnsMasq 把所有的 .dev域名指向你本地安装的站点,比如站点所在目录blog, 通过浏览器访问blog.dev就会自动访问到blog了。分享到公网其实主要依靠ngrok来实现的。

先来安装一下

  • 更新Homebrew
brew update
brew services list
  • 安装php70如果没有安装的话
brew install php70
  • 确保~/.composer/vendor/bin已经添加到系统 PATH 目录中
  • 安装Valet
composer global require laravel/valet
  • 安装 Valet 和  DnsMasq
valet install

如果上一步出现下面的错误:

[ReflectionException]
  Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist

这是由于Composer\Repository\ComposerRepository::whatProvides API 更新了,你已经全局安装了fxp/composer-asset-plugin,所以你需要更新一下:

composer global require fxp/composer-asset-plugin --no-plugins

如果DnsMasq安装失败的话手动安装一下

brew install dnsmasq
  • Ping 一下 *.dev,如果 Ping 通了说明就 OK 了
⇒  ping *.dev
PING *.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.062 ms

下面来启动一个Valet站点

目前直到1.1.7版本支持的驱动如下:

当然,你也是可以自己驱动,Custom Valet Drivers

  • 创建一个文件夹
mkdir ~/WebRoot/ValetSite && cd ~/WebRoot/ValetSite
  • 运行park命令,把上面的目录作为寻找站点路径
valet park
  • 创建一个 Laravel 驱动的站点
laravel new blog

link  命令也可以用来启动 Laravel 站点。park  命令会把这个目录下所有文件夹都当做独立的不同站点,而当你只需要启动一个站点的时候,可以使用  link  命令。

cd ~/WebRoot/ValetSite/blog
valet link test-blog

执行上面命令就可以通过http://test-blog.dev 访问项目站点了,还有两个有用的命令:

valet links
valet unlink

一看就知道干嘛用的了

让站点支持 TLS

让站点支持 TLS 也很简单,自需要执行:

valet secure blog

这样就可以用https://blog.dev 进行访问了,取消的话:

valet unsecure blog

分享站点

这个需求其实挺实用,比如自己开发的东西需要让别人通过外网访问到,只需要一个简单的命令就可以了

valet share

这样就会通过ngrok生成一个外网 URL,要停止分享,可以按  Control + C  来取消进程。

ngrok by @inconshreveable                                                                                                                                                 (Ctrl+C to quit)

Tunnel Status                 online
Version                       2.0.25/2.1.1
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://fda651a8.ngrok.io -> blog.dev:80
Forwarding                    https://fda651a8.ngrok.io -> blog.dev:80

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

####查看站点日志

如果你想查看所有站点的日志,让新的日志也会自动的展示在终端中只需要执行valet logs

其实还有一个隐藏的控制台:访问http://localhost:4040/inspect/http

还有一些Valet命令

命令 描述
valet forget 在 “parked” 的目录中执行该命令来把其从 parded 目录列表中删除。
valet paths 查看所有 “parked” 路径
valet restart 重启 Valet 程序
valet start 启动 Valet 程序
valet stop 停止 Valet 程序
valet uninstall 卸载 Valet 程序

转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记

如果觉得本篇文章对您十分有益,何不 打赏一下

谢谢打赏

本文链接地址: Mac 极简的开发环境 Laravel Valet 实践

知识共享许可协议 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可