시종
ㅠㅠ
- 서비스 사이트
- Link 명령
- 공유 사이트
소개
Valet은 Mac 미니멀리스트를 위한 Laravel 개발 환경입니다. Vagrant가 없으면
/etc/hosts
파일을 구성할 필요가 없습니다. 로컬 터널을 사용하여 사이트를 공개적으로 공유할 수도 있습니다. 네, 저희도 마음에 듭니다./etc/hosts
文件。 甚至可以使用本地隧道公开分享你的站点。 Yeah, we like it too.Laravel Valet 为您的 Mac 设置了开机后始终在后台运行 Nginx 服务。 然后,Valet 使用 DnsMasq 将所有指向安装在本地的计算机站点请求代理到
*.test
结尾的域名上。换句话说,一个速度极快的 Laravel 开发环境只占用 7MB 内存。Valet 并不是想要完全替换 Vagrant 或 Homestead,只是提供另外一种使用起来更加灵活、方便、以及内存占用更小的选择。
Valet 支持但不局限于以下内容:
- Laravel
- Lumen
- Bedrock
- CakePHP 3
- Concrete5
- Contao
- Craft
- Drupal
- Jigsaw
- Joomla
- Katana
- Kirby
- Magento
- OctoberCMS
- Sculpin
- Slim
- Statamic
- Static HTML
- Symfony
- WordPress
- Zend
当然,您也可以使用 自定义驱动 来扩展您的 Valet。
Valet 还是 Homestead
您应该知道,Laravel 还提供了另外一种本地开发环境 Homestead。Homestead 和 Valet 的不同之处在于目标受众和本地开发的方式。Homestead 提供了一个完整的、具有自动化的 Nginx 配置的 Ubuntu 虚拟机。如果你想在 Windows/Linux 上实现完全虚拟化的 Linux 开发环境,Homestead 是一个不错的选择。
Valet 仅支持 Mac,并要求你将 PHP 和数据库服务器直接安装到本地机器上。这可以很容易地通过使用
Laravel Valet은 Mac이 켜진 후에도 항상 백그라운드에서 실행되도록 Nginx 서비스를 설정합니다. 그런 다음 Valet은 DnsMasq를 사용하여 로컬에 설치된 컴퓨터로 전달되는 모든 사이트 요청을Homebrew
命令来实现,比如brew install php
和brew install mysql
*.test
로 끝나는 도메인 이름으로 프록시 처리합니다. 즉, 엄청나게 빠른 Laravel 개발 환경은 메모리를 7MB만 차지합니다. Valet은 Vagrant나 Homestead를 완전히 대체하려는 것이 아니라 더 유연하고 편리하며 메모리를 덜 차지하는 또 다른 옵션을 제공하기 위한 것입니다.Valet은 다음을 지원하지만 이에 국한되지는 않습니다:
- Laravel
- Lumen
- Bedrock < li>CakePHP 3
- Concrete5
- Contao
- Craft
- Drupal
- Jigsaw < li >Joomla
- Katana
- Kirby
- Magento
- OctoberCMS
- 스컬핀
- 슬림
- 정적
- 정적 HTML
- Symfony
- WordPress
- Zend
물론 맞춤형 드라이버를 사용하여 발렛 서비스를 연장할 수도 있습니다. 🎜🎜🎜🎜🎜Valet 또는 Homestead
🎜Laravel도 다음을 제공한다는 것을 알아야 합니다. 홈스테드는 또 다른 로컬 개발 환경입니다. Homestead와 Valet의 차이점은 대상 고객과 지역 개발에 대한 접근 방식입니다. Homestead는 자동화된 Nginx 구성을 갖춘 완전한 Ubuntu 가상 머신을 제공합니다. Windows/Linux에서 완전히 가상화된 Linux 개발 환경을 구현하려면 Homestead가 좋은 선택입니다. 🎜🎜Valet은 Mac 전용이며 PHP 및 데이터베이스 서버를 로컬 컴퓨터에 직접 설치해야 합니다. 이는brew install php
및brew install mysql
과 같은Homebrew
명령을 사용하여 쉽게 수행할 수 있습니다. Valet은 가상 개발 환경이 필요하지 않고 PHP/MySQL만 필요한 개발자에게 이상적인 매우 빠르고 리소스 집약적인 로컬 개발 환경을 제공합니다. 🎜🎜Valet과 Homestead는 모두 Laravel 개발 환경을 구성하는 데 탁월한 선택입니다. 어느 것을 선택할지는 단순히 개인 취향과 팀의 요구 사항에 따라 결정됩니다. 🎜🎜🎜🎜🎜🎜🎜설치
Valet에는 macOS 시스템과 Homebrew가 필요합니다. 설치하기 전에 다른 프로그램(예: Apache 또는 Nginx)이 로컬 시스템의 포트 80을 점유하고 있지 않은지 확인하십시오.
brew 업데이트
를 사용하여 Homebrew를 최신 버전으로 설치하거나 업데이트하세요.- 使用 Homebrew 的
brew install php
命令安装 PHP 7.3。 - 安装 Composer.
- 使用 Composer 的
composer global require laravel/valet
命令安装 Valet。并确保~/.composer/vendor/bin
目录在系统的 "PATH" 中。 - 运行
valet install
命令来配置和安装 Valet 和 DnsMasq,并注册 Valet 后台服务,随系统运行自行启动。
brew update
将 Homebrew 安装或更新到最新版本。安装完 Valet 后,可以尝试使用类似
ping foobar.test
的命令在终端上 ping 任何一个*.test
的域名。如果 Valet 安装正确,可以在终端上看到来自127.0.0.1
的响应。每次机器启动时,Valet 会自动启动其进程。所以只要完成了 Valet 的初始化,就无需再次运行
valet start
或valet install
。使用其它域名
默认情况下,Valet 使用
.test
顶级域名为你的项目提供服务。如果你想使用其它域名,可以使用valet domain tld-name
命令。例如,如果你想使用
.app
来代替.test
,运行valet domain app
,Valet 会自动将站点顶级域名改为*.app
。数据库
如果你要使用数据库,请在终端运行
brew install mysql@5.7
安装 MySQL。一旦安装完成,你可以使用brew services start mysql
命令启动 MySQL。然后,你可以使用root
用户名和空字符串密码连接到127.0.0.1
的数据库。PHP 版本
Valet 允许你使用
valet use php@version
命令来切换 PHP 版本。如果指定版本尚未安装,Valet 将通过 Brew 来安装指定的 PHP 版本:valet use php@7.2valet use php
升级
你可以在终端使用
Composer를 설치하세요.composer global update
Homebrew의brew install php
명령을 사용하여 PHP 7.3을 설치하세요.Composer의composer global require laravel/valet
명령을 사용하여 Valet을 설치하세요. 그리고~/.composer/vendor/bin
디렉토리가 시스템의 "PATH"에 있는지 확인하세요.valet install
명령을 실행하여 Valet 및 DnsMasq를 구성 및 설치하고, 시스템 실행 시 자동으로 시작되도록 Valet 백그라운드 서비스를 등록하세요. 🎜🎜Valet을 설치한 후ping foobar.test
와 유사한 명령을 사용하여*.test
도메인 이름을 핑할 수 있습니다. 터미널 . Valet이 올바르게 설치되었다면 터미널에서127.0.0.1
의 응답을 볼 수 있습니다. 🎜🎜Valet은 기계가 시작될 때마다 자동으로 프로세스를 시작합니다. 따라서 Valet이 초기화되면valet start
또는valet install
을 다시 실행할 필요가 없습니다. 🎜🎜다른 도메인 이름 사용
🎜기본적으로 Valet은.test
최상위 도메인 이름을 사용합니다. 귀하의 프로젝트를 제공하십시오. 다른 도메인 이름을 사용하려면valet domain tld-name
명령을 사용하면 됩니다. 🎜🎜예를 들어.test
대신.app
을 사용하려는 경우valet domain app
을 실행하면 Valet이 자동으로 사이트 상단을 변경합니다. -레벨 도메인 이름을*.app
으로 변경하세요. 🎜🎜데이터베이스
🎜데이터베이스를 사용하려면 다음에서brew install mysql@5.7
을 실행하세요. MySQL을 설치하기 위한 터미널입니다. 설치가 완료되면brew services start mysql
명령을 사용하여 MySQL을 시작할 수 있습니다. 그런 다음root
사용자 이름과 빈 문자열 비밀번호를 사용하여127.0.0.1
의 데이터베이스에 연결할 수 있습니다. 🎜🎜PHP 버전
🎜Valet을 사용하면valet use php@version
명령을 사용하여 PHP 버전을 전환할 수 있습니다. 지정된 버전이 아직 설치되지 않은 경우 Valet은 Brew를 통해 지정된 PHP 버전을 설치합니다: 🎜valet stop valet uninstall
🎜🎜🎜< h3>업그레이드🎜 터미널에서composer global update
명령을 사용하여 Valet을 업데이트할 수 있습니다. 업그레이드 후 필요한 경우 Valet가 구성 파일을 업그레이드할 수 있도록 valet install을 다시 실행하는 것이 가장 좋습니다. 🎜🎜🎜Valet 2.0으로 업그레이드
Valet 2.0은 Valet의 기본 웹 서버를 Caddy에서 Nginx로 이동합니다. 이 버전으로 업그레이드하기 전에 다음 명령을 실행하여 기존 Caddy 프로세스를 중지하고 제거해야 합니다.
composer global require laravel/valet
그런 다음 설치 방법에 따라 Valet을 업그레이드합니다(일반적으로 Git 또는 Composer를 통해). Composer를 통해 Valet을 설치한 경우 다음 명령을 사용하여 최신 주요 버전으로 업데이트해야 합니다.
valet install valet restart
Valet의 소스 코드를 업데이트한 경우 설치 명령을 실행해야 합니다.
valet secure laravel
업그레이드 후 다음 작업이 필요할 수 있습니다. 사이트를 재설정하거나 다시 연결하세요.
서비스 사이트
Valet을 설치한 후 사이트 설정을 시작할 수 있습니다. Valet은 Laravel 사이트를 제공하기 위해
park
및link
라는 두 가지 명령을 제공합니다.park
和link
。- 运行
mkdir ~/Sites
命令在 Mac 上创建一个新的目录。接下来,运行cd ~/Sites
和valet park
将当前的工作目录作为 Valet 搜索站点的路径。 - 接下来,在这个目录中创建一个新的 Laravel 站点:
laravel new blog
。 - 在浏览器中打开
http://blog.test
。
就这么多。 现在,你在 『parked』的目录中创建的任何 Laravel 项目都将自动使用
http://folder-name.test
这种方式访问。如果要在目录中提供单个站点而不是整个目录,就使用 link 命令。
- 要使用该命令,先在终端里切换到你的某个项目并运行
valet link app-name
。Valet 会在~/.valet/Sites
中创建一个符号链接指向当前的目录。 - 运行
link
命令后,你可以在浏览器通过http://app-name.test
park
명령- < li>
- 다음으로,
laravel new blog
디렉터리에 새 Laravel 사이트를 만듭니다. 🎜 - 브라우저에서
http://blog.test
를 엽니다. 🎜🎜🎜🎜그게 다입니다. 이제 "parked" 디렉토리에 생성한 모든 Laravel 프로젝트는http://folder-name.test
를 사용하여 자동으로 액세스됩니다. 🎜🎜🎜link
명령🎜🎜링크 대신 디렉터리에 단일 사이트를 제공하려는 경우 전체 디렉토리, 그냥 link 명령을 사용하세요. 🎜- 이 명령을 사용하려면 먼저 터미널에서 프로젝트 중 하나로 전환하고
valet link app-name
을 실행하세요. Valet은~/.valet/Sites
에 현재 디렉토리를 가리키는 심볼릭 링크를 생성합니다. 🎜 link
명령을 실행한 후 브라우저에서http://app-name.test
를 통해 사이트에 접속할 수 있습니다. 🎜🎜🎜모든 디렉토리 링크 목록을 보려면
valet link
명령을 실행하세요.valet unlink app-name
을 사용하여 심볼릭 링크를 제거할 수도 있습니다.valet links
命令可以查看所有目录链接的列表。你还可以使用valet unlink app-name
来删除符号链接。{tip} 你可以使用
valet link
将多个(子)域名指向同一个应用。要添加子域名或其它域名到应用,可以在应用目录下运行valet link subdomain.app-name
。默认情况下,Valet 服务站点通过纯 HTTP 的方式。但是,如果你想一个站点使用 HTTP/2 通过加密 TLS 提供服务,使用
secure
命令。例如,如果你的站点通过 Valet 在laravel.test
域上提供服务,你应当运行如下的命令去保护它:valet unsecure laravel
要一个站点『解除保护』并恢复为通过纯 HTTP 提供服务它的流量,使用
unsecure
命令。与secure
命令一样,该命令接受你希望去解除保护的主机名称:/** * 确定驱动程序是否满足请求。 * * @param string $sitePath * @param string $siteName * @param string $uri * @return bool */ public function serves($sitePath, $siteName, $uri){ return is_dir($sitePath.'/wp-admin'); }
共享站点
Valet 甚至包括与世界共享你的本地站点的命令。一旦安装 Valet 后无需安装其它软件。
要共享站点,在终端中导航你的站点目录并运行
valet share
命令。一个公开可访问的 URL 将被插入到剪贴板中,并可以直接粘贴到你的浏览器中。仅此而已。要停止共享你的站点,请按
Control + C
{tip}
발렛 링크
를 사용하여 여러 (하위)도메인이 동일한 애플리케이션을 가리키도록 할 수 있습니다. 애플리케이션에 하위 도메인이나 다른 도메인 이름을 추가하려면 애플리케이션 디렉터리에서valet link subdomain.app-name
을 실행하세요.
TLS를 사용한 보안 사이트기본적으로 Valet은 일반 HTTP를 통해 사이트를 제공합니다. 그러나 HTTP/2를 사용하여 암호화된 TLS를 통해 사이트를 제공하려면secure
명령을 사용하세요. 예를 들어 사이트가 Valet을 통해laravel.test
도메인에서 제공되는 경우 다음 명령을 실행하여 사이트를 보호해야 합니다:/** * 确定即将到来的请求是否针对静态文件。 * * @param string $sitePath * @param string $siteName * @param string $uri * @return string|false */public function isStaticFile($sitePath, $siteName, $uri){ if (file_exists($staticFilePath = $sitePath.'/public/'.$uri)) { return $staticFilePath; } return false; }
🎜 사이트를 "보호 해제"하고 일반 HTTP를 통해 해당 사이트로 되돌리려면 트래픽을 처리하려면unsecure
명령을 사용하세요.secure
명령과 마찬가지로 이 명령은 보호 해제하려는 호스트의 이름을 허용합니다: 🎜/** * 获取对应用程序的前端控制器的完全解析路径。 * * @param string $sitePath * @param string $siteName * @param string $uri * @return string */ public function frontControllerPath($sitePath, $siteName, $uri){ return $sitePath.'/public/index.php'; }
🎜🎜🎜🎜사이트 공유
🎜Valet에는 로컬 사이트를 전 세계와 공유하는 명령도 포함되어 있습니다. Valet을 설치한 후에는 추가 소프트웨어를 설치할 필요가 없습니다. 🎜🎜사이트를 공유하려면 터미널에서 사이트 디렉터리로 이동하여valet share
명령을 실행하세요. 공개적으로 액세스 가능한 URL이 클립보드에 삽입되며 브라우저에 직접 붙여넣을 수 있습니다. 그게 다야. 🎜🎜사이트 공유를 중지하려면Control + C
를 눌러 프로세스를 취소하세요. 🎜🎜🎜🎜🎜🎜🎜맞춤형 Valet 드라이버
Valet이 원래 지원하지 않는 다른 프레임워크나 CMS에서 실행되는 PHP 애플리케이션에 서비스를 제공하기 위해 자신만의 Valet "드라이버"를 작성할 수 있습니다. Valet을 설치하면
SampleValetDriver.php
파일이 포함된~/.config/valet/Drivers
디렉터리가 생성됩니다. 이 파일에는 사용자 정의 드라이버를 작성하는 방법을 보여주는 샘플 드라이버 구현이 포함되어 있습니다. 드라이버를 작성하려면serves
,isStaticFile
및frontControllerPath
의 세 가지 메서드만 구현하면 됩니다.SampleValetDriver.php
文件的~/.config/valet/Drivers
目录。该文件包含一个示例驱动程序实现,演示了如何编写一个自定义的驱动程序。编写驱动程序仅需要你去实现三个方法:serves
,isStaticFile
和frontControllerPath
。这三个方法都接受
$sitePath
,$siteName
和$uri
值作为参数。$sitePath
是你的机器上提供站点的完全限定路径。比如/Users/Lisa/Sites/my-project
。$siteName
是域(my-project
)的『主机』/『站点名称』部分。$uri
是即将到来的请求 URL(/foo/bar)。一旦你完成你的自定义 Valet 驱动,使用
FrameworkValetDriver.php
命名约定将它放置在~/.config/valet/Drivers
目录中。例如,如果你为 WordPress 编写了一个自定义的 valet 驱动,你的文件名称应该是WordPressValetDriver.php
。我们来看看自定义的 Valet 驱动程序应该实现的每种方法的示例实现。
serves
方法如果你的驱动程序应当处理即将到来的请求时,
serves
方法应该返回true
。否则,此方法应当返回false
。因此,在此方法中,你应该你企图确定给定的$sitePath
是否包含你尝试提供的类型的项目。例如,让我们假装正在编写一个
WordPressValetDriver
。我们的serves
方法可能看起来如下所示:class LocalValetDriver extends LaravelValetDriver{ /** * 确定驱动程序是否满足请求。 * * @param string $sitePath * @param string $siteName * @param string $uri * @return bool */ public function serves($sitePath, $siteName, $uri){ return true; } /** * 获取对应用程序的前端控制器的完全解析路径。 * * @param string $sitePath * @param string $siteName * @param string $uri * @return string */ public function frontControllerPath($sitePath, $siteName, $uri){ return $sitePath.'/public_html/index.php'; } }
isStaticFile
方法
rrreeeisStaticFile
应当确定即将到来的请求是否针对一个『静态』文件,比如:图片和样式表。如果文件是静态的,此方法应当返回静态文件在磁盘上的完全限定路径。如果即将到来的请求不是针对一个静态文件,这个方法应当返回false
:{note} 如果
serves
方法对即将到来的请求且请求 URI 不是/
返回true
时,才会调用isStaticFile
方法。frontControllerPath
方法
세 가지 메소드 모두frontControllerPath
$sitePath
,$siteName
및$uri
값을 매개변수로 허용합니다.$sitePath
는 사이트를 제공하는 컴퓨터의 정규화된 경로입니다. 예를 들어/Users/Lisa/Sites/my-project
입니다.$siteName
은 도메인(my-project
)의 'host'/'sitename' 부분입니다.$uri
는 수신 요청 URL(/foo/bar)입니다. 커스텀 Valet 드라이버가 구현해야 하는 각 메소드의 구현 예를 살펴보겠습니다.
🎜드라이버가 들어오는 요청을 처리해야 하는 경우serves
방법서브
메소드는true
를 반환해야 합니다. 그렇지 않으면 이 메서드는false
를 반환해야 합니다. 따라서 이 방법에서는 제공된$sitePath
에 제공하려는 유형의 항목이 포함되어 있는지 확인해야 합니다. 🎜🎜예를 들어WordPressValetDriver
를 작성한다고 가정해 보겠습니다.serves
메소드는 다음과 같습니다: 🎜rrreee🎜isStaticFile
메소드 h4 >🎜isStaticFile
은 예정된 요청이 이미지 및 스타일 시트와 같은 "정적" 파일에 대한 것인지 확인해야 합니다. 파일이 정적 파일인 경우 이 메서드는 디스크의 정적 파일에 대한 정규화된 경로를 반환해야 합니다. 들어오는 요청이 정적 파일에 대한 것이 아닌 경우 이 메서드는false
를 반환해야 합니다. 🎜rrreee🎜{note}
serves
메서드가 들어오는 요청에 대한 것이고 요청isStaticFile
메소드는 URI가/
가 아니고true
가 반환되는 경우에만 호출됩니다. 🎜🎜
🎜frontControllerPath
메서드frontControllerPath
메서드가 반환되어야 합니다. 일반적으로 "index.php" 파일 또는 이에 상응하는 애플리케이션의 "프론트 컨트롤러"에 대한 정규화된 경로: 🎜rrreee🎜🎜🎜🎜🎜🎜Local Driver
단일 애플리케이션에 대해 Valet 드라이버를 사용자 정의하려면 해당 애플리케이션의 루트 디렉터리에
rrreeeLocalValetDriver.php
파일을 생성하세요. 사용자 정의 드라이버는ValetDriver
기본 클래스를 확장하거나 다음과 같은 기존 애플리케이션별 드라이버를 상속할 수 있습니다.LaravelValetDriver
:LocalValetDriver.php
文件。你的自定义驱动程序可以扩展ValetDriver
基类或者继承一个现有的应用程序的特定驱动程序,比如:LaravelValetDriver
:rrreee其它 Valet 命令
- 이 명령을 사용하려면 먼저 터미널에서 프로젝트 중 하나로 전환하고
mkdir ~/Sites
명령을 실행하여 Mac에 새 디렉터리를 만듭니다. 그런 다음cd ~/Sites
및valet park
를 실행하여 현재 작업 디렉터리를 Valet이 사이트를 검색할 경로로 사용합니다. 🎜