使用 Laravel Valet 开发 PHP 项目

JellyBool

JellyBool

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

但是需要注意的是:目前 Valet 只支持 Mac OS。

所以下面的教程,都会默认使用的 Mac OS 作为前提。

首先,你需要在 Mac 上安装 php7 和 mysql,如果是一些小小的演示项目的话,可以直接使用 sqlite。通过下面的命令来获取 php7 和 mysql:

brew install homebrew/php/php70

brew install mariadb

这里使用 Homebrew 来安装和管理 php7 和 mysql,我个人是非常推荐大家在 mac 上都使用类似 Homebrew 这样的管理工具来安装和管理自己的常用的开发包,易于升级,易于维护。

Homebrew 安装可以直接看官网:http://brew.sh/ ,就是一行命令的事。

有了 php 和 mysql 之后,就可以开始安装 Valet 了:

composer global require laravel/valet

这里直接使用 composer 进行全局安装,如果你是最新的 Mac OS Sierra,请确保安装到的是 Valet 的最新版本。安装完毕之后,我们期望在命令行中使用 valet 命令,所以不要忘了添加环境变量:

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

这行代码通常放在 .zshrc 或者 .bashrc 中,如果你没找到 ~/.zshrc或者 ~/.bashrc,直接手动创建。添加完环境变量之后,重启命令行终端,之后执行:

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... 


Valet installed successfully!

没事,要输入 sudo 密码的话,输入就好。

那到这里,其实 Valet 已经安装成功了。下面具体看看怎么使用

第一,创建一个专门为 Valet 使用的文件夹,比如我个人使用的是:

mkdir ~/Sites


cd Sites

在这个文件夹之内,执行:

valet park

等待命令行处理完毕,就 OK 了!!!

以后使用需要使用 Valet 作为开发环境的时候,直接在 ~/Sites目录创建 laravel 项目:

cd ~/Sites


laravel new blog

// 或者 composer create-project laravel/laravel blog

坐等 laravel 框架的依赖下载完毕,直接在浏览器访问 blog.dev,也就是:

每个项目的文件夹的名字(project)对于的域名是 project.dev,比如这里创建的 blog 这个项目,对应的域名就是 blog.dev。

最后再说几个非常有用的命令,第一,停止某个 project.dev 的域名,可以直接进入到:

cd ~/Sites/project

valet stop

这样就把该项目对应的 project.dev 域名停用了,你就可以在 Homestead 或者其他的地方使用该域名,避免引起冲突。跟valet stop 相关的还有两个命令:

valet start

valet restart

一看就知道什么意思了。

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

valet share

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

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

valet secure domain

这里的 domain 就是类似 blog.dev 去掉了后缀,说白了就是你的项目文件夹的名字。

最后,Valet 在目前来说其实是支持很多框架和项目的:

1.Laravel

2.Lumen

3.Symfony

4.Zend

5.CakePHP 3

6.WordPress

7.Bedrock

8.Craft

9.Statamic

10.Jigsaw

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

当然,你得买个 mac 先,哈哈哈。

本文由 JellyBool 创作, 转载和引用遵循 署名-非商业性使用 2.5 中国大陆 进行许可。

共有 10 条评论

wuliang

博主:你好!
按照你的教程安装之后,访问blog.dev,页面显示的是phpinfo()的信息,是怎么回事?有遇到过吗?

JellyBool 回复 wuliang

确定你的 valet 是最新的么?

wuliang 回复 JellyBool

是的,1.1.22版本

wuliang 回复 JellyBool

发现,任何字符.dev如(aaa.dev)都是显示的是phpinfo()的信息

JellyBool 回复 wuliang

恩,默认是 *.dev 都会 ping 得通。你的项目目录是真么样的, Sites/blog ?

wuliang 回复 JellyBool

我确定是的,刚还检查了一遍

JellyBool 回复 wuliang

确保你的环境变量有类似:

$HOME/.composer/vendor/bin:

还有执行过 valet spark

wuliang 回复 JellyBool

composer 的环境变量是有的,而且也执行过了

valet park
JellyBool 回复 wuliang

那这就很尴尬了,我看不出什么错了

wuliang 回复 JellyBool

非常感谢博主的解答,最后找到问题了。因为我的80端口已经被占用了。