Laravel Homestead
简介
Laravel Homestead 是一个已不再积极维护的遗留软件包。Laravel Sail 是一个现代化的替代方案。
Laravel 致力于让整个 PHP 开发体验变得愉悦,包括你的本地开发环境。Laravel Homestead 是一个官方预打包的 Vagrant box,为你提供了一个绝佳的开发环境,无需你在本地机器上安装 PHP、Web 服务器或任何其他服务器软件。
Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟机。Vagrant box 是完全可丢弃的。如果出现问题,你可以在几分钟内销毁并重新创建它!
Homestead 可以在任何 Windows、macOS 或 Linux 系统上运行,并内置了 Nginx、PHP、MySQL、PostgreSQL、Redis、Memcached、Node 以及开发精彩 Laravel 应用程序所需的所有其他软件。
如果你使用的是 Windows,可能需要启用硬件虚拟化 (VT-x)。这通常可以通过 BIOS 启用。如果你在 UEFI 系统上使用 Hyper-V,为了访问 VT-x,可能还需要额外禁用 Hyper-V。
内置软件
- Ubuntu 22.04
- Git
- PHP 8.3
- PHP 8.2
- PHP 8.1
- PHP 8.0
- PHP 7.4
- PHP 7.3
- PHP 7.2
- PHP 7.1
- PHP 7.0
- PHP 5.6
- Nginx
- MySQL 8.0
- lmm
- Sqlite3
- PostgreSQL 15
- Composer
- Docker
- Node (包含 Yarn, Bower, Grunt, 和 Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailpit
- avahi
- ngrok
- Xdebug
- XHProf / Tideways / XHGui
- wp-cli
可选软件
- Apache
- Blackfire
- Cassandra
- Chronograf
- CouchDB
- Crystal & Lucky Framework
- Elasticsearch
- EventStoreDB
- Flyway
- Gearman
- Go
- Grafana
- InfluxDB
- Logstash
- MariaDB
- Meilisearch
- MinIO
- MongoDB
- Neo4j
- Oh My Zsh
- Open Resty
- PM2
- Python
- R
- RabbitMQ
- Rust
- RVM (Ruby Version Manager)
- Solr
- TimescaleDB
- Trader (PHP 扩展)
- Webdriver & Laravel Dusk 工具
安装与设置
入门指南
在启动 Homestead 环境之前,你必须安装 Vagrant 以及以下受支持的提供商之一:
所有这些软件包都为所有主流操作系统提供了易于使用的可视化安装程序。
要使用 Parallels 提供商,你需要安装 Parallels Vagrant 插件。它是免费的。
安装 Homestead
你可以通过将 Homestead 仓库克隆到你的主机上来安装 Homestead。建议将仓库克隆到你的“主”目录下的 Homestead 文件夹中,因为 Homestead 虚拟机将作为你所有 Laravel 应用程序的宿主。在本文档中,我们将此目录称为你的“Homestead 目录”。
1git clone https://github.com/laravel/homestead.git ~/Homestead
克隆 Laravel Homestead 仓库后,你应该检出 release 分支。该分支始终包含 Homestead 的最新稳定版本。
1cd ~/Homestead2 3git checkout release
接下来,在 Homestead 目录中执行 bash init.sh 命令,以创建 Homestead.yaml 配置文件。Homestead.yaml 文件是你配置 Homestead 安装所有设置的地方。此文件将放置在 Homestead 目录中。
1# macOS / Linux...2bash init.sh3 4# Windows...5init.bat
配置 Homestead
设置提供商
Homestead.yaml 文件中的 provider 键指示应使用哪个 Vagrant 提供商:virtualbox 或 parallels。
1provider: virtualbox
如果你使用的是 Apple Silicon,则必须使用 Parallels 提供商。
配置共享文件夹
Homestead.yaml 文件中的 folders 属性列出了你希望与 Homestead 环境共享的所有文件夹。当这些文件夹中的文件发生变化时,它们会在你的本地机器和 Homestead 虚拟环境之间保持同步。你可以根据需要配置任意数量的共享文件夹。
1folders:2 - map: ~/code/project13 to: /home/vagrant/project1
Windows 用户不应使用 ~/ 路径语法,而应使用项目的完整路径,例如 C:\Users\user\Code\project1。
你应该始终将各个应用程序映射到它们自己的文件夹映射中,而不是映射包含所有应用程序的单个大目录。当你映射一个文件夹时,虚拟机必须跟踪该文件夹中每个文件的所有磁盘 IO。如果文件夹中有大量文件,你可能会遇到性能下降的情况。
1folders:2 - map: ~/code/project13 to: /home/vagrant/project14 - map: ~/code/project25 to: /home/vagrant/project2
使用 Homestead 时,永远不要挂载 .(当前目录)。这会导致 Vagrant 无法将当前文件夹正确映射到 /vagrant,从而破坏可选功能,并在配置过程中导致意想不到的结果。
要启用 NFS,你可以为文件夹映射添加 type 选项。
1folders:2 - map: ~/code/project13 to: /home/vagrant/project14 type: "nfs"
在 Windows 上使用 NFS 时,应考虑安装 vagrant-winnfsd 插件。该插件将维护 Homestead 虚拟机内文件和目录的正确用户/组权限。
你也可以通过在 options 键下列出 Vagrant 同步文件夹 支持的任何选项来传递它们。
1folders:2 - map: ~/code/project13 to: /home/vagrant/project14 type: "rsync"5 options:6 rsync__args: ["--verbose", "--archive", "--delete", "-zz"]7 rsync__exclude: ["node_modules"]
配置 Nginx 站点
不熟悉 Nginx?没问题。Homestead.yaml 文件的 sites 属性允许你轻松地将“域名”映射到 Homestead 环境中的文件夹。Homestead.yaml 文件中包含了一个示例站点配置。同样,你可以根据需要向 Homestead 环境添加任意数量的站点。Homestead 可以为你正在处理的每个 Laravel 应用程序提供一个方便的虚拟化环境。
1sites:2 - map: homestead.test3 to: /home/vagrant/project1/public
如果你在配置 Homestead 虚拟机后更改了 sites 属性,则应在终端执行 vagrant reload --provision 命令,以更新虚拟机上的 Nginx 配置。
Homestead 脚本旨在尽可能保持幂等性。但是,如果在配置过程中遇到问题,你应该通过执行 vagrant destroy && vagrant up 命令来销毁并重建机器。
主机名解析
Homestead 使用 mDNS 发布主机名以进行自动主机解析。如果你在 Homestead.yaml 文件中设置了 hostname: homestead,则该主机将可以通过 homestead.local 访问。macOS、iOS 和 Linux 桌面发行版默认包含 mDNS 支持。如果你使用的是 Windows,则必须安装 Bonjour Print Services for Windows。
使用自动主机名最适合 按项目安装 的 Homestead。如果你在单个 Homestead 实例上托管多个站点,可以将 Web 站点的“域名”添加到计算机的 hosts 文件中。hosts 文件会将对你的 Homestead 站点的请求重定向到你的 Homestead 虚拟机。在 macOS 和 Linux 上,此文件位于 /etc/hosts。在 Windows 上,它位于 C:\Windows\System32\drivers\etc\hosts。你添加到此文件的行看起来像这样:
1192.168.56.56 homestead.test
确保列出的 IP 地址是你在 Homestead.yaml 文件中设置的地址。一旦将域名添加到 hosts 文件并启动了 Vagrant box,你就可以通过 Web 浏览器访问该站点了。
1http://homestead.test
配置服务
Homestead 默认启动多个服务;但是,你可以自定义在配置期间启用或禁用哪些服务。例如,你可以通过修改 Homestead.yaml 文件中的 services 选项来启用 PostgreSQL 并禁用 MySQL。
1services:2 - enabled:3 - "postgresql"4 - disabled:5 - "mysql"
指定的服务将根据它们在 enabled 和 disabled 指令中的顺序进行启动或停止。
启动 Vagrant Box
按照你的喜好编辑完 Homestead.yaml 后,在 Homestead 目录中运行 vagrant up 命令。Vagrant 将启动虚拟机并自动配置你的共享文件夹和 Nginx 站点。
要销毁机器,可以使用 vagrant destroy 命令。
按项目安装
你可以不全局安装 Homestead 并与所有项目共享同一个 Homestead 虚拟机,而是为每个管理的项目配置一个 Homestead 实例。如果你希望随项目分发 Vagrantfile,允许团队中其他人在克隆项目仓库后立即执行 vagrant up,那么按项目安装 Homestead 可能会更有益。
你可以使用 Composer 包管理器将 Homestead 安装到你的项目中:
1composer require laravel/homestead --dev
Homestead 安装完成后,调用 Homestead 的 make 命令来为你的项目生成 Vagrantfile 和 Homestead.yaml 文件。这些文件将放置在你的项目根目录中。make 命令将自动配置 Homestead.yaml 文件中的 sites 和 folders 指令。
1# macOS / Linux...2php vendor/bin/homestead make3 4# Windows...5vendor\\bin\\homestead make
接下来,在终端运行 vagrant up 命令,然后在浏览器中访问 http://homestead.test 即可访问你的项目。请记住,如果你没有使用自动 主机名解析,仍然需要为 homestead.test 或你选择的域名添加一条 /etc/hosts 文件条目。
安装可选功能
可选软件使用 Homestead.yaml 文件中的 features 选项进行安装。大多数功能都可以通过布尔值启用或禁用,而有些功能允许进行多种配置选项。
1features: 2 - blackfire: 3 server_id: "server_id" 4 server_token: "server_value" 5 client_id: "client_id" 6 client_token: "client_value" 7 - cassandra: true 8 - chronograf: true 9 - couchdb: true10 - crystal: true11 - dragonflydb: true12 - elasticsearch:13 version: 7.9.014 - eventstore: true15 version: 21.2.016 - flyway: true17 - gearman: true18 - golang: true19 - grafana: true20 - influxdb: true21 - logstash: true22 - mariadb: true23 - meilisearch: true24 - minio: true25 - mongodb: true26 - neo4j: true27 - ohmyzsh: true28 - openresty: true29 - pm2: true30 - python: true31 - r-base: true32 - rabbitmq: true33 - rustc: true34 - rvm: true35 - solr: true36 - timescaledb: true37 - trader: true38 - webdriver: true
Elasticsearch
你可以指定受支持的 Elasticsearch 版本,该版本必须是精确的版本号(major.minor.patch)。默认安装将创建一个名为 'homestead' 的集群。你不应为 Elasticsearch 分配超过操作系统内存一半的内存,因此请确保你的 Homestead 虚拟机至少拥有 Elasticsearch 分配内存的两倍空间。
查看 Elasticsearch 文档 以了解如何自定义你的配置。
MariaDB
启用 MariaDB 将移除 MySQL 并安装 MariaDB。MariaDB 通常作为 MySQL 的直接替代品,因此你仍然应该在应用程序的数据库配置中使用 mysql 数据库驱动程序。
MongoDB
默认的 MongoDB 安装将数据库用户名设置为 homestead,密码设置为 secret。
Neo4j
默认的 Neo4j 安装将数据库用户名设置为 homestead,密码设置为 secret。要访问 Neo4j 浏览器,请通过 Web 浏览器访问 http://homestead.test:7474。端口 7687 (Bolt)、7474 (HTTP) 和 7473 (HTTPS) 已准备好处理来自 Neo4j 客户端的请求。
别名 (Aliases)
你可以通过修改 Homestead 目录中的 aliases 文件,向你的 Homestead 虚拟机添加 Bash 别名。
1alias c='clear'2alias ..='cd ..'
更新 aliases 文件后,你应该使用 vagrant reload --provision 命令重新配置 Homestead 虚拟机。这将确保你的新别名在机器上可用。
更新 Homestead
在开始更新 Homestead 之前,你应该确保已经通过在 Homestead 目录中运行以下命令移除了当前的虚拟机:
1vagrant destroy
接下来,你需要更新 Homestead 源代码。如果你克隆了该仓库,可以在当初克隆仓库的位置执行以下命令:
1git fetch2 3git pull origin release
这些命令会从 GitHub 仓库拉取最新的 Homestead 代码,获取最新的标签,然后检出最新的标记版本。你可以在 Homestead 的 GitHub 发布页面 上找到最新的稳定版本号。
如果你是通过项目的 composer.json 文件安装的 Homestead,则应确保你的 composer.json 文件包含 "laravel/homestead": "^12" 并更新你的依赖项。
1composer update
接下来,你应该使用 vagrant box update 命令更新 Vagrant box。
1vagrant box update
更新 Vagrant box 后,你应该在 Homestead 目录中运行 bash init.sh 命令,以更新 Homestead 的附加配置文件。系统会询问你是否要覆盖现有的 Homestead.yaml、after.sh 和 aliases 文件。
1# macOS / Linux...2bash init.sh3 4# Windows...5init.bat
最后,你需要重新生成 Homestead 虚拟机以使用最新的 Vagrant 安装。
1vagrant up
日常使用
通过 SSH 连接
你可以通过在 Homestead 目录中执行 vagrant ssh 终端命令来 SSH 进入你的虚拟机。
添加额外站点
一旦你的 Homestead 环境配置完成并运行,你可能需要为其他 Laravel 项目添加额外的 Nginx 站点。你可以在单个 Homestead 环境中运行任意数量的 Laravel 项目。要添加额外的站点,请将其添加到 Homestead.yaml 文件中。
1sites:2 - map: homestead.test3 to: /home/vagrant/project1/public4 - map: another.test5 to: /home/vagrant/project2/public
在添加站点之前,你应该确保已经为该项目目录配置了 文件夹映射。
如果 Vagrant 没有自动管理你的“hosts”文件,你可能还需要将新站点添加到该文件中。在 macOS 和 Linux 上,此文件位于 /etc/hosts。在 Windows 上,它位于 C:\Windows\System32\drivers\etc\hosts。
1192.168.56.56 homestead.test2192.168.56.56 another.test
站点添加完成后,在 Homestead 目录中执行 vagrant reload --provision 终端命令。
站点类型
Homestead 支持多种“类型”的站点,使你能够轻松运行非 Laravel 项目。例如,我们可以使用 statamic 站点类型轻松地将 Statamic 应用程序添加到 Homestead。
1sites:2 - map: statamic.test3 to: /home/vagrant/my-symfony-project/web4 type: "statamic"
可用的站点类型包括:apache, apache-proxy, apigility, expressive, laravel (默认), proxy (针对 nginx), silverstripe, statamic, symfony2, symfony4 和 zf。
站点参数
你可以通过 params 站点指令向站点添加额外的 Nginx fastcgi_param 值。
1sites:2 - map: homestead.test3 to: /home/vagrant/project1/public4 params:5 - key: FOO6 value: BAR
环境变量
你可以通过将全局环境变量添加到 Homestead.yaml 文件来定义它们。
1variables:2 - key: APP_ENV3 value: local4 - key: FOO5 value: bar
更新 Homestead.yaml 文件后,请务必通过执行 vagrant reload --provision 命令重新配置机器。这将为所有已安装的 PHP 版本更新 PHP-FPM 配置,并更新 vagrant 用户的环境。
端口
默认情况下,以下端口会转发到你的 Homestead 环境:
- HTTP: 8000 → 转发至 80
- HTTPS: 44300 → 转发至 443
转发额外端口
如果你愿意,可以通过在 Homestead.yaml 文件中定义 ports 配置条目,将额外的端口转发到 Vagrant box。更新 Homestead.yaml 文件后,请务必通过执行 vagrant reload --provision 命令重新配置机器。
1ports:2 - send: 500003 to: 50004 - send: 77775 to: 7776 protocol: udp
以下是你可能希望从主机映射到 Vagrant box 的额外 Homestead 服务端口列表:
- SSH: 2222 → 至 22
- ngrok UI: 4040 → 至 4040
- MySQL: 33060 → 至 3306
- PostgreSQL: 54320 → 至 5432
- MongoDB: 27017 → 至 27017
- Mailpit: 8025 → 至 8025
- Minio: 9600 → 至 9600
PHP 版本
Homestead 支持在同一虚拟机上运行多个版本的 PHP。你可以在 Homestead.yaml 文件中为特定站点指定要使用的 PHP 版本。可用的 PHP 版本为:"5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2" 和 "8.3"(默认)。
1sites:2 - map: homestead.test3 to: /home/vagrant/project1/public4 php: "7.1"
在你的 Homestead 虚拟机内,你可以通过 CLI 使用任何受支持的 PHP 版本。
1php5.6 artisan list 2php7.0 artisan list 3php7.1 artisan list 4php7.2 artisan list 5php7.3 artisan list 6php7.4 artisan list 7php8.0 artisan list 8php8.1 artisan list 9php8.2 artisan list10php8.3 artisan list
你可以通过在 Homestead 虚拟机内执行以下命令,来更改 CLI 使用的默认 PHP 版本:
1php56 2php70 3php71 4php72 5php73 6php74 7php80 8php81 9php8210php83
连接数据库
MySQL 和 PostgreSQL 均开箱即用地配置了一个 homestead 数据库。要从主机系统的数据库客户端连接到 MySQL 或 PostgreSQL 数据库,请连接到 127.0.0.1,端口为 33060 (MySQL) 或 54320 (PostgreSQL)。两个数据库的用户名和密码均为 homestead / secret。
只有在从主机连接到数据库时,才应使用这些非标准端口。由于 Laravel 运行在虚拟机内部,你在 Laravel 应用程序的 database 配置文件中仍应使用默认的 3306 和 5432 端口。
数据库备份
当 Homestead 虚拟机被销毁时,Homestead 可以自动备份你的数据库。要使用此功能,你必须使用 Vagrant 2.1.0 或更高版本。如果使用的是旧版本的 Vagrant,则必须安装 vagrant-triggers 插件。要启用自动数据库备份,请在 Homestead.yaml 文件中添加以下行:
1backup: true
配置完成后,当执行 vagrant destroy 命令时,Homestead 会将你的数据库导出到 .backup/mysql_backup 和 .backup/postgres_backup 目录中。这些目录可以在你安装 Homestead 的文件夹中找到,或者如果你使用的是 按项目安装 方法,则在项目的根目录中找到。
配置 Cron 计划任务
Laravel 提供了一种方便的方式来 调度 cron 任务,即调度一个每分钟运行一次的 schedule:run Artisan 命令。schedule:run 命令将检查 routes/console.php 文件中定义的任务调度,以确定要运行哪些计划任务。
如果你希望为某个 Homestead 站点运行 schedule:run 命令,可以在定义该站点时将 schedule 选项设置为 true:
1sites:2 - map: homestead.test3 to: /home/vagrant/project1/public4 schedule: true
该站点的 cron 任务将定义在 Homestead 虚拟机的 /etc/cron.d 目录中。
配置 Mailpit
Mailpit 允许你拦截外发邮件并进行检查,而无需真正将邮件发送给收件人。要开始使用,请更新应用程序的 .env 文件以使用以下邮件设置:
1MAIL_MAILER=smtp2MAIL_HOST=localhost3MAIL_PORT=10254MAIL_USERNAME=null5MAIL_PASSWORD=null6MAIL_ENCRYPTION=null
配置好 Mailpit 后,你可以通过 https://:8025 访问 Mailpit 控制面板。
配置 Minio
Minio 是一个开源的对象存储服务器,具有与 Amazon S3 兼容的 API。要安装 Minio,请在 Homestead.yaml 文件的 features 部分更新以下配置选项:
1minio: true
默认情况下,Minio 在 9600 端口提供服务。你可以通过访问 https://:9600 来进入 Minio 控制面板。默认访问密钥为 homestead,默认密码为 secretkey。访问 Minio 时,请始终使用 us-east-1 区域。
为了使用 Minio,请确保你的 .env 文件中包含以下选项:
1AWS_USE_PATH_STYLE_ENDPOINT=true2AWS_ENDPOINT=https://:96003AWS_ACCESS_KEY_ID=homestead4AWS_SECRET_ACCESS_KEY=secretkey5AWS_DEFAULT_REGION=us-east-1
要配置由 Minio 驱动的“S3”存储桶,请在 Homestead.yaml 文件中添加 buckets 指令。定义好存储桶后,你应该在终端执行 vagrant reload --provision 命令。
1buckets:2 - name: your-bucket3 policy: public4 - name: your-private-bucket5 policy: none
受支持的 policy 值包括:none, download, upload 和 public。
Laravel Dusk
要在 Homestead 内运行 Laravel Dusk 测试,你应该在 Homestead 配置中启用 webdriver 功能:
1features:2 - webdriver: true
启用 webdriver 功能后,你应该在终端执行 vagrant reload --provision 命令。
分享你的环境
有时你可能希望与同事或客户分享你当前的工作成果。Vagrant 通过 vagrant share 命令提供了对此的内置支持;但是,如果你在 Homestead.yaml 文件中配置了多个站点,这将无法工作。
为了解决这个问题,Homestead 包含了它自己的 share 命令。要开始使用,请通过 vagrant ssh SSH 进入你的 Homestead 虚拟机,然后执行 share homestead.test 命令。此命令将共享 Homestead.yaml 配置文件中的 homestead.test 站点。你可以将 homestead.test 替换为你配置的其他任何站点。
1share homestead.test
运行该命令后,你将看到一个 Ngrok 屏幕,其中包含活动日志和共享站点的公共访问 URL。如果你想指定自定义区域、子域名或其他 Ngrok 运行时选项,可以将它们添加到你的 share 命令中。
1share homestead.test -region=eu -subdomain=laravel
如果你需要通过 HTTPS 而非 HTTP 共享内容,请使用 sshare 命令而不是 share。
请记住,Vagrant 本质上是不安全的,运行 share 命令时,你正在将你的虚拟机暴露给互联网。
调试与分析
使用 Xdebug 调试 Web 请求
Homestead 支持使用 Xdebug 进行单步调试。例如,你可以在浏览器中访问页面,PHP 将连接到你的 IDE,以便检查和修改正在运行的代码。
默认情况下,Xdebug 已经运行并准备好接受连接。如果你需要在 CLI 上启用 Xdebug,请在你的 Homestead 虚拟机内执行 sudo phpenmod xdebug 命令。接下来,按照你的 IDE 指南启用调试功能。最后,通过扩展程序或 书签工具 配置浏览器以触发 Xdebug。
Xdebug 会使 PHP 运行速度明显变慢。要禁用 Xdebug,请在 Homestead 虚拟机内运行 sudo phpdismod xdebug 并重启 FPM 服务。
自动启动 Xdebug
在调试向 Web 服务器发出请求的功能测试时,自动启动调试比修改测试以传递自定义标头或 Cookie 来触发调试更容易。要强制 Xdebug 自动启动,请修改 Homestead 虚拟机内的 /etc/php/7.x/fpm/conf.d/20-xdebug.ini 文件,并添加以下配置:
1; If Homestead.yaml contains a different subnet for the IP address, this address may be different...2xdebug.client_host = 192.168.10.13xdebug.mode = debug4xdebug.start_with_request = yes
调试 CLI 应用程序
要调试 PHP CLI 应用程序,请在 Homestead 虚拟机内使用 xphp shell 别名。
1xphp /path/to/script
使用 Blackfire 分析应用程序
Blackfire 是一项用于分析 Web 请求和 CLI 应用程序的服务。它提供了一个交互式用户界面,以调用图和时间轴的形式显示分析数据。它是为开发、测试和生产环境设计的,对最终用户没有开销。此外,Blackfire 还对代码和 php.ini 配置设置提供性能、质量和安全性检查。
Blackfire Player 是一个开源的 Web 爬取、Web 测试和 Web 抓取应用程序,可以与 Blackfire 协同工作,以编写分析方案。
要启用 Blackfire,请使用 Homestead 配置文件中的“features”设置:
1features:2 - blackfire:3 server_id: "server_id"4 server_token: "server_value"5 client_id: "client_id"6 client_token: "client_value"
Blackfire 服务器凭据和客户端凭据 需要 Blackfire 账户。Blackfire 提供了多种分析应用程序的选项,包括 CLI 工具和浏览器扩展。请 查阅 Blackfire 文档以获取更多详情。
网络接口
Homestead.yaml 文件中的 networks 属性用于为你的 Homestead 虚拟机配置网络接口。你可以根据需要配置任意数量的接口。
1networks:2 - type: "private_network"3 ip: "192.168.10.20"
要启用 桥接 (bridged) 接口,请为该网络配置 bridge 设置并将网络类型更改为 public_network:
1networks:2 - type: "public_network"3 ip: "192.168.10.20"4 bridge: "en1: Wi-Fi (AirPort)"
要启用 DHCP,只需从配置中移除 ip 选项即可:
1networks:2 - type: "public_network"3 bridge: "en1: Wi-Fi (AirPort)"
要更新网络使用的设备,你可以向网络配置中添加 dev 选项。默认的 dev 值为 eth0。
1networks:2 - type: "public_network"3 ip: "192.168.10.20"4 bridge: "en1: Wi-Fi (AirPort)"5 dev: "enp2s0"
扩展 Homestead
你可以通过 Homestead 目录根目录下的 after.sh 脚本来扩展 Homestead。在此文件中,你可以添加任何为正确配置和自定义虚拟机所需的 shell 命令。
在自定义 Homestead 时,Ubuntu 可能会询问你是要保留包的原始配置还是用新的配置文件覆盖它。为避免这种情况,在安装软件包时应使用以下命令,以避免覆盖 Homestead 先前写入的任何配置:
1sudo apt-get -y \2 -o Dpkg::Options::="--force-confdef" \3 -o Dpkg::Options::="--force-confold" \4 install package-name
用户自定义
在团队中使用 Homestead 时,你可能希望调整 Homestead 以更好地适应你的个人开发风格。为此,你可以在 Homestead 目录的根目录下(即包含 Homestead.yaml 文件的目录)创建一个 user-customizations.sh 文件。你可以在此文件中进行任何你想要的自定义;但是,user-customizations.sh 不应该被版本控制。
特定提供商设置
VirtualBox
natdnshostresolver
默认情况下,Homestead 将 natdnshostresolver 设置配置为 on。这允许 Homestead 使用你宿主操作系统的 DNS 设置。如果你想覆盖此行为,请将以下配置选项添加到你的 Homestead.yaml 文件中:
1provider: virtualbox2natdnshostresolver: 'off'