Appearance
Laravel Homestead
介绍
Laravel 努力使整个 PHP 开发体验愉快,包括你的本地开发环境。Laravel Homestead 是一个官方的、预打包的 Vagrant box,为你提供一个出色的开发环境,而无需在本地机器上安装 PHP、Web 服务器或任何其他服务器软件。
Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟机。Vagrant box 是完全可丢弃的。如果出现问题,你可以在几分钟内销毁并重新创建 box!
Homestead 可以在任何 Windows、macOS 或 Linux 系统上运行,并包含 Nginx、PHP、MySQL、PostgreSQL、Redis、Memcached、Node 以及你开发出色 Laravel 应用所需的所有其他软件。
WARNING
如果你使用 Windows,可能需要启用硬件虚拟化 (VT-x)。通常可以通过 BIOS 启用。如果你在 UEFI 系统上使用 Hyper-V,可能还需要禁用 Hyper-V 以访问 VT-x。
包含的软件
- 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 版本管理器)
- Solr
- TimescaleDB
- Trader (PHP 扩展)
- Webdriver & Laravel Dusk 工具
安装与设置
第一步
在启动 Homestead 环境之前,你必须安装 Vagrant 以及以下支持的提供者之一:
所有这些软件包都为所有流行操作系统提供易于使用的可视化安装程序。
要使用 Parallels 提供者,你需要安装 Parallels Vagrant 插件。这是免费的。
安装 Homestead
你可以通过将 Homestead 仓库克隆到你的主机上来安装 Homestead。考虑将仓库克隆到你的"主目录"中的 Homestead 文件夹,因为 Homestead 虚拟机将作为你所有 Laravel 应用的主机。在本文件中,我们将此目录称为你的"Homestead 目录":
shell
git clone https://github.com/laravel/homestead.git ~/Homestead在克隆 Laravel Homestead 仓库后,你应该检出 release 分支。此分支始终包含 Homestead 的最新稳定版本:
shell
cd ~/Homestead
git checkout release接下来,从 Homestead 目录执行 bash init.sh 命令以创建 Homestead.yaml 配置文件。Homestead.yaml 文件是你将配置所有 Homestead 安装设置的地方。此文件将放置在 Homestead 目录中:
shell
# macOS / Linux...
bash init.sh
# Windows...
init.bat配置 Homestead
设置你的提供者
你的 Homestead.yaml 文件的 provider 键指示应使用哪个 Vagrant 提供者:virtualbox 或 parallels:
provider: virtualbox
WARNING
如果你使用 Apple Silicon,则必须使用 Parallels 提供者。
配置共享文件夹
Homestead.yaml 文件的 folders 属性列出了你希望与 Homestead 环境共享的所有文件夹。当这些文件夹中的文件发生更改时,它们将在你的本地机器和 Homestead 虚拟环境之间保持同步。你可以配置任意数量的共享文件夹:
yaml
folders:
- map: ~/code/project1
to: /home/vagrant/project1WARNING
Windows 用户不应使用 ~/ 路径语法,而应使用项目的完整路径,例如 C:\Users\user\Code\project1。
你应该始终将单个应用映射到自己的文件夹映射,而不是映射包含所有应用的单个大型目录。当你映射一个文件夹时,虚拟机必须跟踪该文件夹中的所有磁盘 IO。如果一个文件夹中有大量文件,你可能会遇到性能降低的问题:
yaml
folders:
- map: ~/code/project1
to: /home/vagrant/project1
- map: ~/code/project2
to: /home/vagrant/project2WARNING
你永远不应该在使用 Homestead 时映射 .(当前目录)。这会导致 Vagrant 不将当前文件夹映射到 /vagrant,并且在配置时会破坏可选功能并导致意外结果。
要启用 NFS,你可以在文件夹映射中添加 type 选项:
yaml
folders:
- map: ~/code/project1
to: /home/vagrant/project1
type: "nfs"WARNING
在 Windows 上使用 NFS 时,你应该考虑安装 vagrant-winnfsd 插件。此插件将在 Homestead 虚拟机中保持正确的用户/组权限,对于文件和目录。
你还可以通过在 options 键下列出它们来传递 Vagrant 的 Synced Folders 支持的任何选项:
yaml
folders:
- map: ~/code/project1
to: /home/vagrant/project1
type: "rsync"
options:
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
rsync__exclude: ["node_modules"]配置 Nginx 站点
不熟悉 Nginx?没问题。你的 Homestead.yaml 文件的 sites 属性允许你轻松将"域"映射到 Homestead 环境中的文件夹。Homestead.yaml 文件中包含了一个示例站点配置。再次强调,你可以在 Homestead 环境中添加任意数量的站点。Homestead 可以作为你正在处理的每个 Laravel 应用的便捷、虚拟化环境:
yaml
sites:
- map: homestead.test
to: /home/vagrant/project1/public如果你在配置 Homestead 虚拟机后更改了 sites 属性,你应该在终端中执行 vagrant reload --provision 命令以更新 Homestead 虚拟机上的 Nginx 配置。
WARNING
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 文件中。此文件将重定向对你的 Homestead 站点的请求到你的 Homestead 虚拟机。在 macOS 和 Linux 上,此文件位于 /etc/hosts。在 Windows 上,它位于 C:\Windows\System32\drivers\etc\hosts。你添加到此文件的行将如下所示:
192.168.56.56 homestead.test
确保列出的 IP 地址是你在 Homestead.yaml 文件中设置的 IP 地址。一旦你将域添加到 hosts 文件并启动 Vagrant box,你就可以通过 Web 浏览器访问该站点:
shell
http://homestead.test配置服务
Homestead 默认启动几个服务;但是,你可以自定义在配置时启用或禁用哪些服务。例如,你可以启用 PostgreSQL 并禁用 MySQL,方法是修改 Homestead.yaml 文件中的 services 选项:
yaml
services:
- enabled:
- "postgresql"
- disabled:
- "mysql"指定的服务将根据它们在 enabled 和 disabled 指令中的顺序启动或停止。
启动 Vagrant Box
一旦你根据自己的喜好编辑了 Homestead.yaml,就可以从 Homestead 目录运行 vagrant up 命令。Vagrant 将启动虚拟机并自动配置你的共享文件夹和 Nginx 站点。
要销毁机器,你可以使用 vagrant destroy 命令。
每个项目的安装
与其在全局安装 Homestead 并在所有项目之间共享同一个 Homestead 虚拟机,你可以为每个项目配置一个 Homestead 实例。每个项目安装 Homestead 可能有利于你希望随项目一起分发 Vagrantfile 的情况,这样其他人在克隆项目的存储库后就可以立即 vagrant up。
你可以使用 Composer 包管理器将 Homestead 安装到你的项目中:
shell
composer require laravel/homestead --dev安装 Homestead 后,调用 Homestead 的 make 命令以为你的项目生成 Vagrantfile 和 Homestead.yaml 文件。这些文件将放置在项目的根目录中。make 命令将自动配置 Homestead.yaml 文件中的 sites 和 folders 指令:
shell
# macOS / Linux...
php vendor/bin/homestead make
# Windows...
vendor\\bin\\homestead make接下来,在终端中运行 vagrant up 命令,并在浏览器中访问你的项目 http://homestead.test。请记住,你仍然需要添加 /etc/hosts 文件条目以供 homestead.test 或你选择的域使用,如果你没有使用自动主机名解析。
安装可选功能
可选软件使用 Homestead.yaml 文件中的 features 选项安装。大多数功能可以使用布尔值启用或禁用,而一些功能允许多个配置选项:
yaml
features:
- blackfire:
server_id: "server_id"
server_token: "server_value"
client_id: "client_id"
client_token: "client_value"
- cassandra: true
- chronograf: true
- couchdb: true
- crystal: true
- dragonflydb: true
- elasticsearch:
version: 7.9.0
- eventstore: true
version: 21.2.0
- flyway: true
- gearman: true
- golang: true
- grafana: true
- influxdb: true
- logstash: true
- mariadb: true
- meilisearch: true
- minio: true
- mongodb: true
- neo4j: true
- ohmyzsh: true
- openresty: true
- pm2: true
- python: true
- r-base: true
- rabbitmq: true
- rustc: true
- rvm: true
- solr: true
- timescaledb: true
- trader: true
- webdriver: trueElasticsearch
你可以指定支持的 Elasticsearch 版本,该版本必须是一个精确的版本号(主要.次要.补丁)。默认安装将创建一个名为 'homestead' 的集群。你应该永远不要给 Elasticsearch 超过操作系统内存的一半,所以确保你的 Homestead 虚拟机至少有 Elasticsearch 分配的两倍内存。
NOTE
查看 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 客户端提供服务。
别名
你可以通过修改 Homestead 目录中的 aliases 文件来为 Homestead 虚拟机添加 Bash 别名:
shell
alias c='clear'
alias ..='cd ..'更新 aliases 文件后,你应该使用 vagrant reload --provision 命令重新配置 Homestead 虚拟机,以确保新的别名在机器上可用。
更新 Homestead
在开始更新 Homestead 之前,你应该确保已从你的 Homestead 目录中删除了当前的虚拟机,方法是运行以下命令:
shell
vagrant destroy接下来,你需要更新 Homestead 源代码。如果你克隆了存储库,你可以在最初克隆存储库的位置执行以下命令:
shell
git fetch
git pull origin release这些命令从 GitHub 存储库中获取最新的 Homestead 代码,获取最新的标签,然后检出最新的标记版本。你可以在 Homestead 的 GitHub 发布页面 上找到最新的稳定版本。
如果你是通过项目的 composer.json 文件安装 Homestead 的,你应该确保你的 composer.json 文件包含 "laravel/homestead": "^12",并更新你的依赖项:
shell
composer update接下来,你应该使用 vagrant box update 命令更新 Vagrant box:
shell
vagrant box update更新 Vagrant box 后,你应该从 Homestead 目录运行 bash init.sh 命令,以更新 Homestead 的其他配置文件。你将被询问是否要覆盖现有的 Homestead.yaml、after.sh 和 aliases 文件:
shell
# macOS / Linux...
bash init.sh
# Windows...
init.bat最后,你需要重新生成你的 Homestead 虚拟机以利用最新的 Vagrant 安装:
shell
vagrant up日常使用
通过 SSH 连接
你可以通过在 Homestead 目录中执行 vagrant ssh 终端命令来 SSH 进入你的虚拟机。
添加额外站点
一旦你的 Homestead 环境配置并运行,你可能希望为其他 Laravel 项目添加额外的 Nginx 站点。你可以在单个 Homestead 环境上运行任意数量的 Laravel 项目。要添加额外的站点,请将站点添加到你的 Homestead.yaml 文件中。
yaml
sites:
- map: homestead.test
to: /home/vagrant/project1/public
- map: another.test
to: /home/vagrant/project2/publicWARNING
你应该确保在添加站点之前已为项目目录配置了文件夹映射。
如果 Vagrant 没有自动管理你的"hosts"文件,你可能需要将新站点添加到该文件中。在 macOS 和 Linux 上,此文件位于 /etc/hosts。在 Windows 上,它位于 C:\Windows\System32\drivers\etc\hosts:
192.168.56.56 homestead.test
192.168.56.56 another.test
添加站点后,在 Homestead 目录中执行 vagrant reload --provision 终端命令。
站点类型
Homestead 支持几种"类型"的站点,可以轻松运行不基于 Laravel 的项目。例如,我们可以轻松地将 Statamic 应用添加到 Homestead,使用 statamic 站点类型:
yaml
sites:
- map: statamic.test
to: /home/vagrant/my-symfony-project/web
type: "statamic"可用的站点类型包括:apache、apache-proxy、apigility、expressive、laravel(默认)、proxy(用于 nginx)、silverstripe、statamic、symfony2、symfony4 和 zf。
站点参数
你可以使用 params 站点指令向站点添加额外的 Nginx fastcgi_param 值:
yaml
sites:
- map: homestead.test
to: /home/vagrant/project1/public
params:
- key: FOO
value: BAR环境变量
你可以通过将它们添加到你的 Homestead.yaml 文件中来定义全局环境变量:
yaml
variables:
- key: APP_ENV
value: local
- key: FOO
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 命令:
yaml
ports:
- send: 50000
to: 5000
- send: 7777
to: 777
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"(默认):
yaml
sites:
- map: homestead.test
to: /home/vagrant/project1/public
php: "7.1"在你的 Homestead 虚拟机内,你可以使用任何支持的 PHP 版本通过 CLI:
shell
php5.6 artisan list
php7.0 artisan list
php7.1 artisan list
php7.2 artisan list
php7.3 artisan list
php7.4 artisan list
php8.0 artisan list
php8.1 artisan list
php8.2 artisan list
php8.3 artisan list你可以通过在 Homestead 虚拟机内执行以下命令来更改 CLI 使用的默认 PHP 版本:
shell
php56
php70
php71
php72
php73
php74
php80
php81
php82
php83连接数据库
homestead 数据库已经为 MySQL 和 PostgreSQL 预配置。要从主机机器的数据库客户端连接到你的 MySQL 或 PostgreSQL 数据库,你应该连接到 127.0.0.1 的端口 33060(MySQL)或 54320(PostgreSQL)。数据库的用户名和密码都是 homestead / secret。
WARNING
你应该仅在从主机机器连接到数据库时使用这些非标准端口。在 Laravel 应用的 database 配置文件中,你应该使用默认的 3306 和 5432 端口,因为 Laravel 是在虚拟机内运行的。
数据库备份
当你销毁 Homestead 虚拟机时,Homestead 可以自动备份你的数据库。要使用此功能,你必须使用 Vagrant 2.1.0 或更高版本。或者,如果你使用的是较旧版本的 Vagrant,你必须安装 vagrant-triggers 插件。要启用自动数据库备份,请在 Homestead.yaml 文件中添加以下行:
backup: true
配置完成后,当执行 vagrant destroy 命令时,Homestead 将导出你的数据库到 .backup/mysql_backup 和 .backup/postgres_backup 目录。这些目录可以在你安装 Homestead 的位置找到,或者如果你使用每个项目安装方法,可以在项目的根目录找到。
配置 Cron 调度
Laravel 提供了一种方便的方式来调度 cron 作业,即仅调度单个 schedule:run Artisan 命令每分钟运行一次。schedule:run 命令将检查你的 routes/console.php 文件中定义的作业计划,以确定要运行哪些计划任务。
如果你希望 schedule:run 命令为 Homestead 站点运行,你可以在定义站点时设置 schedule 选项为 true:
yaml
sites:
- map: homestead.test
to: /home/vagrant/project1/public
schedule: true该站点的 cron 作业将在 Homestead 虚拟机的 /etc/cron.d 目录中定义。
配置 Mailpit
Mailpit 允许你拦截你的出站邮件并在实际发送邮件给收件人之前检查它。要开始,更新你的应用的 .env 文件以使用以下邮件设置:
ini
MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null配置 Mailpit 后,你可以通过访问 http://localhost:8025 访问 Mailpit 仪表板。
配置 Minio
Minio 是一个开源的对象存储服务器,具有 Amazon S3 兼容的 API。要安装 Minio,请在 Homestead.yaml 文件中使用以下配置选项在功能部分:
minio: true
默认情况下,Minio 可在端口 9600 上访问。你可以通过访问 http://localhost:9600 访问 Minio 控制面板。默认访问密钥是 homestead,而默认密钥是 secretkey。访问 Minio 时,你应该始终使用区域 us-east-1。
要使用 Minio,请确保你的 .env 文件有以下选项:
ini
AWS_USE_PATH_STYLE_ENDPOINT=true
AWS_ENDPOINT=http://localhost:9600
AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1要配置 Minio 驱动的 "S3" 桶,请在 Homestead.yaml 文件中添加 buckets 指令。定义桶后,你应该在终端中执行 vagrant reload --provision 命令:
yaml
buckets:
- name: your-bucket
policy: public
- name: your-private-bucket
policy: none支持的 policy 值包括:none、download、upload 和 public。
Laravel Dusk
要在 Homestead 中运行 Laravel Dusk 测试,你应该在 Homestead 配置中启用 webdriver 功能:
yaml
features:
- webdriver: true启用 webdriver 功能后,你应该在终端中执行 vagrant reload --provision 命令。
共享你的环境
有时你可能希望与同事或客户分享你当前正在处理的内容。Vagrant 内置支持此功能,即 vagrant share 命令;但是,如果你在 Homestead.yaml 文件中配置了多个站点,这将不起作用。
为了解决这个问题,Homestead 包含了自己的 share 命令。要开始,通过 SSH 连接到你的 Homestead 虚拟机,使用 vagrant ssh,然后执行 share homestead.test 命令。此命令将共享你的 Homestead.yaml 配置文件中的 homestead.test 站点。你可以用任何其他配置的站点替换 homestead.test:
shell
share homestead.test运行命令后,你将看到一个 Ngrok 屏幕出现,其中包含活动日志和共享站点的公开可访问 URL。如果你想指定自定义区域、子域或其他 Ngrok 运行时选项,你可以将它们添加到你的 share 命令中:
shell
share homestead.test -region=eu -subdomain=laravel如果你需要以 HTTPS 而不是 HTTP 共享内容,使用 sshare 命令而不是 share 命令将使你能够这样做。
WARNING
请记住,Vagrant 本质上是不安全的,当运行 share 命令时,你正在将你的虚拟机暴露给 Internet。
调试与分析
使用 Xdebug 调试 Web 请求
Homestead 包含对 Xdebug 的支持,以便进行步骤调试。例如,你可以访问页面,PHP 将连接到你的 IDE 以允许检查和修改正在运行的代码。
默认情况下,Xdebug 已经运行并准备接受连接。如果你需要在 CLI 上启用 Xdebug,请在 Homestead 虚拟机内执行 sudo phpenmod xdebug 命令。接下来,按照你的 IDE 的说明启用调试。最后,配置你的浏览器以使用扩展或书签触发 Xdebug。
WARNING
Xdebug 会导致 PHP 运行速度显著减慢。要禁用 Xdebug,请在 Homestead 虚拟机内运行 sudo phpdismod xdebug 并重启 FPM 服务。
自动启动 Xdebug
在调试功能测试时,当测试向 Web 服务器发出请求时,自动启动调试比修改测试以传递自定义标头或 cookie 以触发调试更容易。要强制 Xdebug 自动启动,请修改 Homestead 虚拟机内的 /etc/php/7.x/fpm/conf.d/20-xdebug.ini 文件,并添加以下配置:
ini
; If Homestead.yaml contains a different subnet for the IP address, this address may be different...
xdebug.client_host = 192.168.10.1
xdebug.mode = debug
xdebug.start_with_request = yes调试 CLI 应用
要调试 PHP CLI 应用,请在 Homestead 虚拟机内使用 xphp shell 别名:
xphp /path/to/script
使用 Blackfire 分析应用
Blackfire 是一个用于分析 Web 请求和 CLI 应用的服务。它提供了一个交互式用户界面,显示了以调用图和时间线的形式的配置文件数据。它是为开发、分段和生产环境构建的,对最终用户没有开销。此外,Blackfire 还提供了对代码和 php.ini 配置设置的性能、质量和安全检查。
Blackfire Player 是一个开源的 Web 爬行、Web 测试和 Web 抓取应用,可以与 Blackfire 一起工作,以便脚本分析场景。
要启用 Blackfire,请在 Homestead 配置文件中使用"features"设置:
yaml
features:
- blackfire:
server_id: "server_id"
server_token: "server_value"
client_id: "client_id"
client_token: "client_value"Blackfire 服务器凭据和客户端凭据需要 Blackfire 帐户。Blackfire 提供了各种选项来分析应用,包括 CLI 工具和浏览器扩展。请查看 Blackfire 文档以获取更多详细信息。
网络接口
Homestead.yaml 文件的 networks 属性配置了你的 Homestead 虚拟机的网络接口。你可以配置任意数量的接口:
yaml
networks:
- type: "private_network"
ip: "192.168.10.20"要启用桥接接口,为网络配置 bridge 设置,并将网络类型更改为 public_network:
yaml
networks:
- type: "public_network"
ip: "192.168.10.20"
bridge: "en1: Wi-Fi (AirPort)"要启用DHCP,只需从你的配置中删除 ip 选项即可:
yaml
networks:
- type: "public_network"
bridge: "en1: Wi-Fi (AirPort)"To update what device the network is using, you may add a dev option to the network's configuration. The default dev value is eth0:
yaml
networks:
- type: "public_network"
ip: "192.168.10.20"
bridge: "en1: Wi-Fi (AirPort)"
dev: "enp2s0"扩展 Homestead
您可以使用 Homestead 目录根目录中的 after.sh 脚本来扩展 Homestead。在此文件中,您可以添加正确配置和自定义虚拟机所需的任何 shell 命令。
在自定义 Homestead 时,Ubuntu 可能会询问您是要保留包的原始配置还是用新的配置文件覆盖它。为避免这种情况,您应该在安装软件包时使用以下命令,以避免覆盖 Homestead 之前编写的任何配置:
shell
sudo apt-get -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
install package-name用户自定义
当您的团队使用 Homestead 时,您可能希望调整 Homestead 以更好地适应您的个人开发风格。为此,您可以在 Homestead 目录的根目录中创建一个 user-customizations.sh 文件(包含您的 Homestead.yaml 文件的同一目录)。在此文件中,您可以进行所需的任何自定义;但是,不应对 user-customizations.sh 进行版本控制。
提供程序特定设置
VirtualBox
natdnshostresolver
默认情况下,Homestead 将 natdnshostresolver 设置配置为 on。这允许 Homestead 使用您的主机操作系统的 DNS 设置。如果要覆盖此行为,请将以下配置选项添加到您的 Homestead.yaml 文件中:
yaml
provider: virtualbox
natdnshostresolver: 'off'