使用 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 项目。

每一天都要进步一点点!

本帖由 Summer 于 2年前 加精
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 28
Destiny

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

2年前 评论
Summer

你也。。太高产了吧

2年前 评论
Summer

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

错别字:

2年前 评论
Fjun

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

2年前 评论
Fjun

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

2年前 评论
Fjun

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

2年前 评论

其实windows也有valet

2年前 评论
Fjun

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

2年前 评论
ChiVincent

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

搭建起來快又方便

2年前 评论
Fjun

@ChiVincent 好提议 :smile:

2年前 评论
Destiny

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

2年前 评论
Destiny

@devon 最近一直用的 docker。

2年前 评论
Fjun

@Destiny 是范骏 :bowtie:

2年前 评论
Fjun

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

2年前 评论
Epona

valet 是 神技。

2年前 评论
Destiny

@devon ....

2年前 评论

@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

2年前 评论
Fjun

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

2年前 评论

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

2年前 评论
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的语法

2年前 评论

@devon 我意思是

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

2年前 评论

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

2年前 评论

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

2年前 评论
Fjun

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

2年前 评论
Fjun

@genyii :stuck_out_tongue_closed_eyes:

2年前 评论
Fjun

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

2年前 评论
solgh

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

1年前 评论
solgh
1年前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!