Valet 是 Mac 极简主义者的 Laravel 开发环境。没有 Vagrant,不需要配置
《Laravel 5.8 中文文档》/etc/hosts
文件。 甚至可以使用本地隧道公开分享你的站点。 Yeah, we like it too.
Laravel Valet 为您的 Mac 设置了开机后始终在后台运行 Nginx 服务。 然后,Valet 使用 DnsMasq 将所有指向安装在本地的计算机站点请求代理到*.test
结尾的域名上。
换句话说,一个速度极快的 Laravel 开发环境只占用 7MB 内存。Valet 并不是想要完全替换 Vagrant 或 Homestead,只是提供另外一种使用起来更加灵活、方便、以及内存占用更小的选择。
这两天入了新的 MacBook Pro,因为之前 TimeMachine 里的系统已经好几年没重装过了,所以这次并没有直接导入备份,而是从零开始部署,于是就尝试了朋友 Hintay 云推荐的开发环境,没想到是真的香。一套 PHP 环境搭配下来,大概也就花费了十五分钟的时间。
安装
Valet 需要 macOS 系统和 Homebrew。在安装之前,要确保没有其它程序(如 Apache 或 Nginx)占用了本地机器的 80 端口。
1.首先要安装 Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.安装 php
brew install php
截止到2019年8月8日,Homebrew 上面的 PHP 的最新发行版本是 7.3.7
3.安装 Nginx
brew install nginx
Nginx 监听 80 端口,需要将其加入 root 组中
sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
4.安装 MySQL
brew install mysql
安装完成后要手动启动
brew services start mysql
mysql_secure_installation
MySQL 安装完成后,打开 /usr/local/etc/my.cnf 文件,填入以下内容
# Default Homebrew MySQL server config
[mysqld]
# PHP 7.4 Fix
default-authentication-plugin = mysql_native_password
# Only allow connections from localhost
bind-address = localhost
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
5. 安装 redis(可选)
brew install redis
pecl install redis # PHP 扩展
6. 安装 Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
切换 Composer 源(使用阿里云镜像)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
7. 安装 Valet
composer global require laravel/valet
8. 添加环境变量
编辑 ~/.bash_profile
我使用的是 zsh
所以也可以直接编辑~/.zshrc
添加
export PATH="$PATH:$HOME/.composer/vendor/bin"
添加好之后让变量生效
source ~/.zshrc
# 或者 source ~/.bash_profile
重启终端,安装 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 install 重新安装
现在,你就能享受 Valet 带来的快感惹!
基本命令
valet start
valet restart
valet stop
部署项目
以 Sites 目录为例
mkdir ~/Sites
cd Sites
安装了 Valet 之后,你就可以开始设置站点。Valet 提供两个命令来为 Laravel 的站点提供服务: park
和 link
。
park
命令
- 运行
mkdir ~/Sites
命令在 Mac 上创建一个新的目录。接下来,运行cd ~/Sites
和valet park
将当前的工作目录作为 Valet 搜索站点的路径。 - 接下来,在这个目录中创建一个新的 Laravel 站点:
laravel new blog
。 - 在浏览器中打开
http://blog.test
。
就这么多。 现在,你在 『parked』的目录中创建的任何 Laravel 项目都将自动使用 http://folder-name.test
这种方式访问。
link
命令
如果要在目录中提供单个站点而不是整个目录,就使用 link 命令。
- 要使用该命令,先在终端里切换到你的某个项目并运行
valet link app-name
。Valet 会在~/.valet/Sites
中创建一个符号链接指向当前的目录。 - 运行
link
命令后,你可以在浏览器通过http://app-name.test
访问站点。
运行 valet links
命令可以查看所有目录链接的列表。你还可以使用 valet unlink app-name
来删除符号链接。
你可以使用
valet link
将多个(子)域名指向同一个应用。要添加子域名或其它域名到应用,可以在应用目录下运行valet link subdomain.app-name
。
使用 TLS 保护站点(开启 HTTPS)
默认情况下,Valet 服务站点通过纯 HTTP 的方式。但是,如果你想一个站点使用 HTTP/2 通过加密 TLS 提供服务,使用 secure
命令。例如,如果你的站点通过 Valet 在 laravel.test
域上提供服务,你应当运行如下的命令去保护它:
valet secure laravel
要一个站点『解除保护』并恢复为通过纯 HTTP 提供服务它的流量,使用 unsecure
命令。与 secure
命令一样,该命令接受你希望去解除保护的主机名称:
valet unsecure laravel
值得注意的是,Valet 使用的证书未经过权威机构签发,使用 Postman 调试时,需要关闭 SSL certificate verification.
修改默认后缀
Valet 默认的后缀是 .test,我将其修改为 .app,命令如下:
valet domain app
更多用法参考:
《Laravel Valet》:https://learnku.com/docs/laravel/5.8/valet/3883
《使用 Laravel Valet 做开发》:https://learnku.com/articles/4546/development-using-laravel-valet
文章最后修订于 2021年10月27日
评论 (0)