使用 Laravel Valet 做开发

使用 Laravel Valet 做开发

Laravel Valet 诞生比较长的一段时间了,从官方正式推荐开始,我也有使用 Valet 作为自己的开发环境,到目前为止,整个体验都是非常不错的。

目前 Valet 只能在苹果电脑上使用[只支持Mac OS]系统

所以写这个博客的时候,我使用的环境是Mac os,windows用户也可以了解下以备买了苹果本之后提前掌握?。

首先,你需要在 Mac 上安装 PHP 7.3.7 和 mysql。通过下面的命令来获取 PHP 7.3.7 和 mysql环境:

注意:Mac新系统默认自带的是php7.1版本 (macOS Mojava系统) 直接使用 brew install php命令安装最新版本覆盖之前的7.1版本即可;

nginx在Mac OS中可以直接使用brew命令进行安装:

brew install nginx

使用80端口,需要将nginx加入root组当中:

sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

启动nginx服务:

安装好nginx之后使用命令启动nginx服务

sudo nginx

MySQL安装:

在Mac下安装MySQL也可以使用brew命令直接进行安装:

brew install mysql

安装 valet

安装完成nginx 和 mysql 之后我们可以开始安装 valet了;

在这之前电脑上必须是已经安装过 Composer了,我这里不再说Composer安装了,php开发者基本都会安装,我这里给我官网,没有安装的可以在我们的社区找到安装指令;[Composer]https://pkg.phpcomposer.com/#how-to-instal...)

安装好composer之后即可使用composer安装valet

composer global require laravel/valet

添加环境变量:

安装好了valet之后,我们需要将valet添加环境变量中才能使用对应指令:我的Mac电脑变量配置文件通常是: ~/.zshrc 一般还会有 ~/.bashrc ~/.bash_profile 如果你电脑没有这些文件,那么就手动创建;

export PATH="$PATH:$HOME/.composer/vendor/bin"

添加好之后别忘了让变量生效:

source ~/.zshrc

重启下终端 安装valet:

valet install

如果你看到这样的提示:

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
[dnsmasq] is not installed, installing it now via Brew... 

那就在命令最前面加sudo 重新安装

成功后出现:

Valet installed successfully!

这样就安装好了,是不是挺简单的;

使用Valet 搭建一个laravel项目

在你电脑的家目录创建一个文件夹,我的是叫Sites,这是我开发的工作目录,不仅是php开发,ruby go等等开发都是在这个目录存放我的项目代码;当然你可以取别的名字,这个见仁见智,随意就行;

我这里就拿Sites 文件夹作为演示

mkdir ~/Sites
cd Sites

在Sites 执行:

valet park

在此目录下创建Laravel项目

composer create-project laravel/laravel --prefer-dist laravel

Laravel 下载完成之后 可以在浏览器访问 http://laravel.dev

valet 创建每个项目的文件夹的名字(project)对应的域名是 project.dev,比如这里创建的 laravel 这个项目,对应的域名就是 laravel.dev。【目前.dev域名已失效,可使用 valet domain命令重定向一个新的域名后缀,我使用的是.work】

然后我在介绍下非常有用的命令:

  • 1.停止某个 laravel.work 的域名,可以直接进入到:
cd ~/Sites/laravel
Valet stop

这样就可以把项目对应的laravel.work域名停掉;

配合使用的命令还有两个:

Valet restart
Valet start

别告诉我你不知道这两个命令的意思;

  • 2.如果你想把你开发环境的效果通过url 网址的形式展示给别人看,比如你的老大可能需要看一下项目的预想效果,或者测试一下项目在手机端的适配和表现,你可以通过:
valet share

这样就可以拿到一个分享的链接,你只要把该链接发送给对方,对方就可以通过链接访问到你开发环境中的项目效果,如果你需要终止分享,直接按 Ctrl+c 就可以了。

  • 3.如果你的项目是必须在 https 中运行的,可以考虑下面的命令:

这里的 domain 就是类似 laravel.dev 去掉了后缀,说白了就是你的项目文件夹的名字。(dev后缀目前已被大多数浏览器屏蔽访问,建议更改后缀。比如:.work)

最后,Valet 在目前来说其实是支持很多框架和项目的(下边也是我使用过并且支持的):

1.Laravel
2.Lumen
3.Zend
4.CakePHP
5.WordPress

这对于一个 PHP 开发者来说,基本上满足你 90% 的开发环境的需求了,所以,我非常推荐大家使用 Valet 来开发 laravel 项目。

本作品采用《CC 协议》,转载必须注明作者和本文链接
每一天都要进步一点点!
本帖由 Summer 于 6年前 加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 29
Destiny

Valet 不错,一个项目环境只需要 3 秒

6年前 评论
Summer

你也。。太高产了吧

6年前 评论
Summer

目前 Valet 只能再苹果电脑上使

错别字:

6年前 评论
Fjun

@Destiny 罗彦兄 你现在也在用啊 ,不过我感觉 Homestead 也还不错 :blush:

6年前 评论
Fjun

@Summer 老大你这来捧场 我都受宠若惊了 :smiley:

6年前 评论
Fjun

@Summer :thumbsup: 你牛 审的很仔细

6年前 评论

其实windows也有valet

6年前 评论
Fjun

@genyii 真的吗? 啥时候有windows了? 我看看 :laughing:

6年前 评论

MySQL、Redis、Memcached 建議直接用 Docker 的 Offical Image

搭建起來快又方便

6年前 评论
Fjun

@ChiVincent 好提议 :smile:

6年前 评论
Destiny

@devon 原来你是范俊。。。。。。

6年前 评论
Destiny

@devon 最近一直用的 docker。

6年前 评论
Fjun

@Destiny 是范骏 :bowtie:

6年前 评论
Fjun

@Destiny 时间长了就习惯了,还是挺好用的

6年前 评论
Epona

valet 是 神技。

6年前 评论
Destiny

@devon ....

6年前 评论

@devon 一开始挺新鲜,后面发现其实没吊用。

有个比较常见的场景:团队里有前端和后端开发,前端人员经常需要直连后端开发人员的接口地址调试,又得改前端机器的DNS,比较麻烦。

我们现在做APP开发,APP上如果要用假域名访问得

  1. Valet配置dnsmasq的局域网访问
  2. 手机上把DNS设置为开发机器IP

如果换个人访问又得改手机,比较麻烦,最后直接 php -S 0.0.0.0:8001 -t public 来搞定了。

我们现在是在package.json里面写的一个script

"scripts": {
    "serve": "php -S 0.0.0.0:8001 -t public",

这样直接npm run serve就启动了。

不过我们现在团队里有用AdonisJs做Node开发的什么phpvalethomestead啥的都不要了。除了装个命令行的git和node啥都不用,直接 npm run dev 就用sqlite开始开发。顶多装个mysql

6年前 评论
GGabriel 4年前
Fjun

@genyii 团队里开发环境可以考虑docker 一键部署,目前我们团队的开发环境不管是本地还是服务器都基于docker来实现,包括构建站群服务,高效快捷而且所有开发人员环境统一,方便开发和调试,推荐使用:grimacing: 朋友有空可以研究下,如许帮组可以随时联系我!

6年前 评论

@devon 比如APP本地开发的时候手机访问本地接口的话,API地址填啥呢?

6年前 评论
Fjun

@genyii 本地访问本地很容易啊 解析对应的域名到hosts 就行,比如接口地址为:api.laravel-china.com,解析hosts为

127.0.0.1 api.laravel-china.com 

本地访问外网的话,在对应的服务器做域名解析,laravel项目中路由分发对应地址就行:
就好比说我的服务器项目对应的API路由是 api.laravel-china.com ,本地的laravel项目直接用这个Api地址就行;

至于App使用的话,在App入口文件直接调用就行

IOS:

define MainURL  @"http://api.laravel-china.com/"

Android:

public static final String API = "http://api.laravel-china.com/";

注意 iosAndroid的语法

6年前 评论

@devon 我意思是

App 上开发的时候接口地址就不好填这个app.dev的域名了吧。因为不再是localhost,是局域网里的两台机器,手机上只能用IP来访问到后端机器的API,比如 http://192.168.1.108:9001/api/posts

6年前 评论

@genyii valet2开始使用nginx 你这种情况在nginx专门配置一个就解决了吧 我目前就是这样 要改下nginx fastcgi_pass

6年前 评论

@mitoop 感觉不在一个频道 :smile_cat:

6年前 评论
Fjun

@genyii 直接本地访问 http://app.dev/api/posts 接口地址就行

6年前 评论
Undefined_fish 2年前
Fjun

@genyii :stuck_out_tongue_closed_eyes:

6年前 评论
Fjun

@mitoop 恩 你的做法没有问题 ,我们有试过使用fastcgi_pass 不过可以试试,谢谢:relieved:

6年前 评论
solgh

之前安装 valet 是 PHP版本是7.0 后面升级到了 7.1 但是valet 用的还是7.0 导致composer 安装时是按7.1的来安装了。
valet 怎么将PHP 升级为 7.1?

5年前 评论
solgh
5年前 评论

跟着教程配置环境 ,遇到了一些问题。 环境 mac 10.14.6 valet 2.5.0 PHP 7.2.23 nginx/1.17.3 lar6.me 可以ping通。 但是浏览器访问的时 502 。请帮忙指点一下

4年前 评论
小黄真滴菜 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!