利用 Valet 开发和调试 PHP 项目

对于开发者来说,为自己投资买一台 Mac,这可是「低投资高回报」,平时在开发 PHP 项目时,常规的做法需要在电脑上安装一系列开发工具,如: XAMP,还需要配置开发环境,如果涉及到多语言开发,就有可能出现电脑上塞满了各种工具,电脑基本处于高负荷使用,基本不用做其他事情了。

好在开发 PHP,尤其是基于 Laravel 框架的,完全可以用上 Laravel Valet 了。

Valet 概念

Valet 是为 Mac 提供的极简主义开发环境,没有 Vagrant ,也无需 /etc/hosts 文件,甚至可以使用本地隧道公开共享你的站点。Yeah, we like it too. Laravel Valet 会在你的 Mac 上将 Nginx 设置为随系统启动后台运行,然后使用 DnsMasq , Valet 将所有的请求代理到 *.dev 域名并指向本地安装的站点目录。 换句话说,一个速度极快的 Laravel 开发环境仅仅需要占用 7MB 内存。 Valet 并不是想要替代 Vagrant 或者 Homestead,只是提供另外一种选择,更加灵活、方便、以及占用更小的内存。

Valet 安装

1.安装或更新 Homebrew (https://brew.sh/) 到最新版本,使用命令 brew update

2.安装 PHP:brew install homebrew/php/php71

注:如果安装了其它版本 PHP,可以通过命令 brew link 替换。

3.安装 Composer: http://www.phpcomposer.com/

4.通过 composer 安装 Valet:composer global require laravel/valet

5.运行 valet install 命令。它将会配置并安装 Valet 和 DnsMasq ,并且将 Valet 的进程注册为随系统启动。

注:Valet 将会在每次系统启动时自动启动,而不需要你每次运行 valet start 或 valet install。

Valet 命令

1.valet link app-name

对于每个 Laravel 项目,只要在该项目主目录下,运行该命令,则 Valet 将会在 ~/.valet/Sites 中创建一个符号链接并指向当前 Laravel 项目目录。只要在浏览器输入 http://app-name.dev/ 既可访问该项目了。

2.valet park

由于开发时,不可能只有一个项目,对于多个项目,只要这些项目都放在同一个目录下,并执行该命令,只需要在浏览器输入对应的项目名 + (.dev)即可访问每个项目站点,从而避免于对每个项目都需要运行 valet link app-name。

3.valet forget

和命令 valet park 配套使用,只要在某个站点根路径运行该命令可在根目录列表中移除该目录

4.valet paths

可能长时间使用,忘了自己的站点目录和站点链接,完全可以执行该命令查看:

5.valet share

Valet 还提供一个命令将本地站点分享给其他人,这不需要任何额外安装软件即可实现。

要分享站点,在你的终端中切换到站点目录使用该命令。这会生成一个可以公开访问的 URL链接。只要分享给别人,别人就可以访问了。

valet 能实现该功能,主要是集成了 Dnsmasq。

Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。 https://wiki.archlinux.org/index.php/Dnsmasq_(简体中文)

调试企业号

Valet 除了能够提供更便捷的开发环境以外,正因为有了 valet share,可以做的东西就多了,不但可以分享给别人,供别人访问测试,而且还可以用于企业号,配置服务端访问,调试企业号和公众号。本文拿企业号当 demo 跑跑。

在项目中运行 valet share:

在企业号后台配置对应的服务器链接、Token 和 EncodingAESKey

只要配置成功了,调试企业号或者公众号一些功能,就可以直接在本地一边编写,一边实时测试了,不至于每次都需要提交代码到服务器测试。

彩蛋

1.valet for Windows

valet 也许不再是 Mac 独有了。现在有人专门制作 windows 版,至于能不能用,我也不了解了:https://github.com/cretueusebiu/valet-windows

2.valet 可以在满足于多个框架使用

框架

框架

框架

Laravel

Lumen

Bedrock

CakePHP 3

Concrete5

contao

Craft

Drupal

Jigsaw

Joomla

Katana

kirby

Magento

OctoberCMS

Sculpin

Slim

Statamic

Symfony

WordPress

Zend

Static HTML

参考

  1. http://d.laravel-china.org/docs/5.4/valet
  2. https://laravel.com/docs/5.4/valet
  3. https://wiki.archlinux.org/index.php/Dnsmasq
  4. https://dotdev.co/laravel-valet/

原文发布于微信公众号 - coding01(coding01)

原文发表时间:2017-08-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蓝天

LinuxThreads和NPTL

LinuxThreads 项目最初将多线程的概念引入了 Linux?,但是 LinuxThreads 并不遵守 POSIX 线程标准。尽管更新的 Native ...

16630
来自专栏搜云库

Spring Cloud(六)服务网关 zuul 快速入门

服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。S...

36890
来自专栏技术博文

linux ss命令使用详解

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够...

51760
来自专栏张首富-小白的成长历程

CentOS系统优化脚本,未完结

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

22720
来自专栏owent

近期活动比较零散

近期的活动比较零散,主要的业余精力都放在了libatbus上了。但是这个一时半会也写不完,所以能整理出来的东西不多。就说下最近跟进的开源代码吧。

12630
来自专栏北京马哥教育

Linux开机启动(bootstrap)

计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。然而,计算机开机又是个异常脆弱的过程,我们满心期望的...

20150
来自专栏Seebug漏洞平台

从 CVE-2018-8495 看 PC 端 url scheme 的安全问题

本文受 CVE-2018-8495 漏洞的启发,以学习的目的,针对 PC 端 url scheme 的安全问题进行了分析研究。

13910
来自专栏耕耘实录

CentOS7下group和group-、passwd与passwd-之间的区别

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

10640
来自专栏Golang语言社区

从零开始实现RPC框架 - RPC原理及实现

RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一...

20730
来自专栏瞎说开发那些事

[微服务系列] 微服务构建框架--Spring Boot

22970

扫码关注云+社区

领取腾讯云代金券