Jacky's Blog Jacky's Blog
  • 首页
  • 关于
  • 项目
  • 大事记
  • 留言板
  • 友情链接
  • 分类
    • 干货
    • 随笔
    • 项目
    • 公告
    • 纪念
    • 尝鲜
    • 算法
    • 深度学习
首页 › 干货 › Valet 极简的 PHP 开发环境

Valet 极简的 PHP 开发环境

Jacky
8月 9, 2019干货阅读 4,598
目录
  1. 安装
  2. 部署项目
    1. 使用 TLS 保护站点(开启 HTTPS)
    2. 修改默认后缀

Valet 是 Mac 极简主义者的 Laravel 开发环境。没有 Vagrant,不需要配置 /etc/hosts 文件。 甚至可以使用本地隧道公开分享你的站点。 Yeah, we like it too.
Laravel Valet 为您的 Mac 设置了开机后始终在后台运行 Nginx 服务。 然后,Valet 使用 DnsMasq 将所有指向安装在本地的计算机站点请求代理到 *.test 结尾的域名上。
换句话说,一个速度极快的 Laravel 开发环境只占用 7MB 内存。Valet 并不是想要完全替换 Vagrant 或 Homestead,只是提供另外一种使用起来更加灵活、方便、以及内存占用更小的选择。

《Laravel 5.8 中文文档》

这两天入了新的 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
Valet 极简的 PHP 开发环境-Jacky's Blog
安装完成的提示

若出现:

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日

赞(5)
18
上一篇
macOS 为应用签名
下一篇
再想想
暂无评论
近期评论
  • Jacky发表在《Nginx UI》
  • daiwenzh5发表在《Nginx UI》
  • Jacky发表在《Nginx UI》
  • daiwenzh5发表在《Nginx UI》
  • Jacky发表在《Nginx UI》
5
  • 5
  • 0
Copyright © 2016-2023 Jacky's Blog. Designed by nicetheme.
粤ICP备16016168号-1
  • 首页
  • 关于
  • 项目
  • 大事记
  • 留言板
  • 友情链接
  • 分类
    • 干货
    • 随笔
    • 项目
    • 公告
    • 纪念
    • 尝鲜
    • 算法
    • 深度学习
# Mac # # Apple # # OS X # # iOS # # macOS #
Jacky
PHP C C++ Python | 舞象之年 | 物联网工程
174
文章
169
评论
267
喜欢