Larravel Valet

来源:互联网 发布:飘零网络验证金盾 编辑:程序博客网 时间:2024/06/14 09:05

参考网站:https://9iphp.com/web/laravel/laravel-valet-local-dev-environment.html

当你的电脑开机的时候,Laravel Valet 就会配置你的 Mac 自动在后台运行 PHP 内置的 WEB 服务。然后,通过 DnsMasq,Valet 会把所有的 .dev 域名指向你本地安装的站点。比如说你站点所在的文件夹叫做 blog-test-20160507,那么你在浏览器访问 blog-test-20160507.dev 的时候就会自动访问到该文件夹。

Valet 只支持 Mac,而且需要你在本地安装 PHP 和 数据库服务,而这些通过 Homebrew 命令brew install php70 and brew install mariadb 可以很容易的实现。Valet 使用极少的资源消耗提供了一个极速的本地开发环境。所以,它非常适合那些只需要 PHP/MySQL 而不需要一个完整的虚拟化开发环境的人。

安装

Valet 需要 Mac 系统以及 Homebrew。在安装之前,你需要确保你本地的 80 端口没有被其他程序(如 Nginx、Apache)所占用。

安装或通过 brew update 命令更新 Homebrew 到最新版本
通过运行 brew services list 来确保 brew services 是可用的。如果不行的话,请添加它
通过 brew install php70 来安装 PHP7.0,你可能需要先 tap PHP Homebrew formulas。如果你收到 “No similarly named formulae found.” 这样的提升,可以运行 brew install homebrew/php/php70 来安装它
通过 composer global require laravel/valet 命令安装 Valet,并确保 ~/.composer/vendor/bin 目录被添加到了系统的 PATH 环境变量中(编辑 ~/.bash_profile 文件,没有的话自己创建一个,在其中添加 export PATH=~/.composer/vendor/bin:PATHsource /.bashprofileechoPATH 确保是否添加成功了。)。
执行 valet install 命令。这会配置并安装 Valet 和 DnsMasq,并把 Valet 添加到电脑开机时的自动启动程序中。
当 Valet 安装成功后,你可以在终端中 ping 任何 *.dev 域名,如 ping test-blog.dev,如果安装正确的话,你会看到大致如下的信息:

PING test-blog.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.064 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.066 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.143 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.067 ms

当电脑启动的时候,Valet 就会自动启动它的后台驻留程序,所以当 Valet 安装成功后你不需要在每次运行 valet up 或者 valet install 来启动它了。如果你需要数据库的话,可以在命令行运行 brew install mariadb 来安装 MariaDB,当然你也可以选择 MySQL,然后通过 root 用户名和空密码来连接 127.0.0.1 数据库服务。

启动

一旦 Valet 安装成功,你就可以启动站点了,Valet 提供了两个命令来帮你启动 Laravel 站点:park 和 link。

使用 mkdir ~/Sites 命令创建一个新的文件夹,然后执行 cd ~/Sites 进入刚刚创建的目录,之后运行 valet park 命令,这条命令会把当前工作目录作为 Valet 寻找站点的路径。
在当前目录创建新的 Laravel 站点:laravel new blog。
在浏览器打开 blog.dev 试试看是不是已经可以打开网址了?(使用站点文件夹名称+.dev的格式)
这样就可以了。并且所有位于你执行了 valet park 命令的目录(本例中的 ~/Sites)下的站点都可以通过这种方式来访问。

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

进入站点所在目录,然后执行 valet link app-name(注意此处为 Laravel 的项目名称,而非目录名称)。Valet 会在 ~/.valet/Sites 创建一个软链接执行当前工作目录。
当上面的命令执行之后,你就可以在浏览器访问 http://app-name.dev 了
可以通过 valet links 命令查看 linked 目录,还可以通过 valet unlink app-name 命令取消软链接。

分享

在终端进入站点目录,然后运行 valet share 命令,之后就会生成一个公共的可访问的URL,并自动的把生成的链接添加到了你的剪切板中,你可以把它粘贴到浏览器中,也可以发送给其让人来访问。要停止分享,可以按 Control + C 来取消进程。

日志

如果你想查看所有站点的日志,可以运行 valet logs 命令,新的日志也会自动的展示在终端中。

定制Valet驱动

如果你使用 Valet 不支持的其他框架或者 CMS 的话,你也可以编写自己的 Valet “驱动”。当你安装好 Valet 之后,就会自动创建一个 ~/.valet/Drivers 文件夹,其中会包含一个 SampleValetDriver.php 文件。

这个文件包含了一个实现样例,为你展示了如何编写定制驱动。编写驱动,你只需要实现三个方法:serves、isStaticFile 和 frontControllerPath。

这三个方法都接收 sitePathsiteName 和 urisitePath 是你站点目录的完全路径,如 /Users/Specs/Sites/my-project。siteName/(myproject)uri 是传入的请求 URI(/foo/bar)。

当完成之后,你可以以 FrameworkValetDriver.php 命名方式把其放在 ~/.valet/Drivers文件夹中。例如你编写 WordPress 驱动的话,应该将其命名为 WordPressValetDriver.php。

下面让我们来看看你定制 Valet 驱动时应该实现的样例。

serves 方法
如果你的 Valet 需要处理传入请求的话,serves 方法应该返回 TRUE,否则应该返回 FALSE。所以在此方法中,你应该确定传入的 $sitePath 是否包含你需要服务的类型。

例如,假设我们在编写 WordPressValetDriver,那么该方法应该是下面这样:

public function serves(sitePath,siteName, uri)  
{  
    return is_dir(
sitePath.’/wp-admin’);
}
isStaticFile 方法
isStaticFile 应该判断接收的请求是否是静态文件,如图片、样式表等,该方法要返回文件所在硬盘中的全部路径。如果接收的请求不是静态文件,则返回 FALSE:

public function isStaticFile(sitePath,siteName, uri)  
{  
    if (file_exists(
staticFilePath = sitePath./public/.uri)) {
return $staticFilePath;
}

return false;

}
注意:isStaticFile 方法只有在 serves 方法返回 TRUE,并且进入的请求不是 / 的时候才会调用。

frontControllerPath 方法
frontControllerPath 方法应当返回你的“前端控制器”的全部路径,一般应该是 index.php或者类似的文件:

public function frontControllerPath(sitePath,siteName, uri)  
{  
    return
sitePath.’/public/index.php’;
}

命令

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

默认的,Valet 使用 .dev 顶级域名,如果你想使用其他顶级域名的话,可以使用这个命令来修改:

valet domain tld-nam
举例,如果你想使用 .app 来作为顶级域名的话,你可以运行:

valet domain app
配置完成后 Valet 会自动为你的 .app 顶级域名提供服务。

数据库

如果你需要数据库,可以使用 brew install mariadb 命令行来安装 MariaDB。你可以使用 host 为 127.0.0.1,用户名 root,密码为空进行连接。

park 命令

在Mac中创建一个新目录,例如 mkdir ~/Sites,然后进入这个目录 cd ~/Sites 并运行 valet park。这个命令会将当前所在目录作为 Web 根目录。
接下来,在新建的目录中创建一个新的 Laravel 站点:laravel new blog。
在浏览器中访问 http://blog.dev。
这就是我们要做的全部工作。现在,所有在 Sites 目录中创建的 Laravel 项目都可以通过 http://folder-name.dev

link 命令也可以用于本地 Laravel 站点,这个命令在你想要在目录中提供单个站点时很有用。

要使用这个命令,先切换到你的某个项目并运行 valet link app-name,这样Valet会在 ~/.valet/Sites 中创建一个符号链接指向当前工作目录。
运行完 link 命令后,可以在浏览器中通过 http://app-name.dev 访问。
要查看所有的链接目录,可以运行 valet links 命令。你也可以通过 valet unlink app-name 来删除符号链接。

安全站点

默认情况下,Valet 提供简单的 HTTP Web 服务,如果你想利用 HTTP/2 提供加密的 TLS,你可以使用 secure 命令,例如,你有一个站点是 laravel.dev ,你可以使用以下命令来使其更加安全:

valet secure laravel
使用 unsecure 命令可以去除 secure 增加的安全加密:

valet unsecure laravel

valet forget 从 parked 目录运行该命令以便从 parked 目录列表中移除该目录
valet paths 查看你的 parked 路径
valet restart 重启
valet start 启动
valet stop 停止
valet uninstall 卸载

原创粉丝点击