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 应用程序所需的所有其他软件。
如果您使用 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 目录”:
git clone https://github.com/laravel/homestead.git ~/Homestead
克隆 Laravel Homestead 存储库后,您应该检出 release
分支。此分支始终包含 Homestead 的最新稳定版本:
cd ~/Homestead
git checkout release
接下来,从 Homestead 目录执行 bash init.sh
命令以创建 Homestead.yaml
配置文件。Homestead.yaml
文件是您将配置 Homestead 安装的所有设置的地方。该文件将放置在 Homestead 目录中:
# macOS / Linux...
bash init.sh
# Windows...
init.bat
配置 Homestead
设置您的提供程序
Homestead.yaml
文件中的 provider
键指示应使用哪个 Vagrant 提供程序:virtualbox
或 parallels
:
provider: virtualbox
如果您使用 Apple Silicon,则需要使用 Parallels 提供程序。
配置共享文件夹
Homestead.yaml
文件的 folders
属性列出了您希望与 Homestead 环境共享的所有文件夹。随着这些文件夹中的文件发生更改,它们将在您的本地计算机和 Homestead 虚拟环境之间保持同步。您可以根据需要配置任意数量的共享文件夹:
folders:
- map: ~/code/project1
to: /home/vagrant/project1
Windows 用户不应使用 ~/
路径语法,而应使用项目的完整路径,例如 C:\Users\user\Code\project1
。
您应该始终将单个应用程序映射到其自己的文件夹映射,而不是映射包含所有应用程序的大目录。当您映射一个文件夹时,虚拟机必须跟踪文件夹中每个文件的所有磁盘 IO。如果您在一个文件夹中有大量文件,您可能会遇到性能下降:
folders:
- map: ~/code/project1
to: /home/vagrant/project1
- map: ~/code/project2
to: /home/vagrant/project2
您绝对不应在使用 Homestead 时挂载 .
(当前目录)。这会导致 Vagrant 不将当前文件夹映射到 /vagrant
,并在配置时导致可选功能中断和意外结果。
要启用 NFS,您可以在文件夹映射中添加 type
选项:
folders:
- map: ~/code/project1
to: /home/vagrant/project1
type: "nfs"
在 Windows 上使用 NFS 时,您应该考虑安装 vagrant-winnfsd 插件。此插件将维护 Homestead 虚拟机中文件和目录的正确用户/组权限。
您还可以通过在 options
键下列出它们来传递 Vagrant 的 同步文件夹 支持的任何选项:
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 应用程序的方便虚拟化环境:
sites:
- map: homestead.test
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 实例上托管多个站点,则可以将网站的“域”添加到您计算机上的 hosts
文件中。hosts
文件将请求重定向到您的 Homestead 虚拟机。在 macOS 和 Linux 上,此文件位于 /etc/hosts
。在 Windows 上,它位于 C:\Windows\System32\drivers\etc\hosts
。您添加到此文件的行将如下所示:
192.168.56.56 homestead.test
确保列出的 IP 地址是您在 Homestead.yaml
文件中设置的地址。添加域到 hosts
文件并启动 Vagrant box 后,您将能够通过 Web 浏览器访问该站点:
http://homestead.test
配置服务
Homestead 默认启动多个服务;但是,您可以自定义在配置期间启用或禁用的服务。例如,您可以通过修改 Homestead.yaml
文件中的 services
选项来启用 PostgreSQL 并禁用 MySQL:
services:
- enabled:
- "postgresql"
- disabled:
- "mysql"
指定的服务将根据它们在 enabled
和 disabled
指令中的顺序启动或停止。
启动 Vagrant Box
一旦您根据自己的喜好编辑了 Homestead.yaml
,请从 Homestead 目录运行 vagrant up
命令。Vagrant 将启动虚拟机并自动配置您的共享文件夹和 Nginx 站点。
要销毁机器,您可以使用 vagrant destroy
命令。
每个项目的安装
您可以选择不全局安装 Homestead,而是为您管理的每个项目配置一个 Homestead 实例。每个项目安装 Homestead 可能是有益的,如果您希望与项目一起发送 Vagrantfile
,允许其他在项目上工作的人在克隆项目的存储库后立即 vagrant up
。
您可以使用 Composer 包管理器将 Homestead 安装到项目中:
composer require laravel/homestead --dev
安装 Homestead 后,调用 Homestead 的 make
命令以生成项目的 Vagrantfile
和 Homestead.yaml
文件。这些文件将放置在项目的根目录中。make
命令将自动配置 Homestead.yaml
文件中的 sites
和 folders
指令:
# macOS / Linux...
php vendor/bin/homestead make
# Windows...
vendor\\bin\\homestead make
接下来,在终端中运行 vagrant up
命令,并在浏览器中访问您的项目 http://homestead.test
。请记住,如果您不使用自动 主机名解析,仍然需要为 homestead.test
或您选择的域添加 /etc/hosts
文件条目。
安装可选功能
可选软件通过 Homestead.yaml
文件中的 features
选项安装。大多数功能可以使用布尔值启用或禁用,而某些功能允许多个配置选项:
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: 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 客户端提供请求服务。
别名
您可以通过修改 Homestead 目录中的 aliases
文件向 Homestead 虚拟机添加 Bash 别名:
alias c='clear'
alias ..='cd ..'
更新 aliases
文件后,您应该使用 vagrant reload --provision
命令重新配置 Homestead 虚拟机。这将确保您的新别名在机器上可用。
更新 Homestead
在开始更新 Homestead 之前,您应该确保通过在 Homestead 目录中运行以下命令删除当前虚拟机:
vagrant destroy
接下来,您需要更新 Homestead 源代码。如果您克隆了存储库,可以在您最初克隆存储库的位置执行以下命令:
git fetch
git pull origin release
这些命令从 GitHub 存储库中提取最新的 Homestead 代码,获取最新的标签,然后检出最新的标记版本。您可以在 Homestead 的 GitHub 发布页面 上找到最新的稳定版本。
如果您通过项目的 composer.json
文件安装了 Homestead,您应该确保您的 composer.json
文件包含 "laravel/homestead": "^12"
并更新您的依赖项:
composer update
接下来,您应该使用 vagrant box update
命令更新 Vagrant box:
vagrant box update
更新 Vagrant box 后,您应该从 Homestead 目录运行 bash init.sh
命令以更新 Homestead 的其他配置文件。系统会询问您是否希望覆盖现有的 Homestead.yaml
、after.sh
和 aliases
文件:
# macOS / Linux...
bash init.sh
# Windows...
init.bat
最后,您需要重新生成 Homestead 虚拟机以利用最新的 Vagrant 安装:
vagrant up
日常使用
通过 SSH 连接
您可以通过从 Homestead 目录执行 vagrant ssh
终端命令 SSH 进入您的虚拟机。
添加额外站点
一旦您的 Homestead 环境被配置并运行,您可能希望为其他 Laravel 项目添加额外的 Nginx 站点。您可以在单个 Homestead 环境上运行任意数量的 Laravel 项目。要添加额外的站点,请将站点添加到您的 Homestead.yaml
文件中。
sites:
- map: homestead.test
to: /home/vagrant/project1/public
- map: another.test
to: /home/vagrant/project2/public
您应该确保在添加站点之前已配置项目目录的 文件夹映射。
如果 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
站点类型轻松将 Statamic 应用程序添加到 Homestead:
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
值:
sites:
- map: homestead.test
to: /home/vagrant/project1/public
params:
- key: FOO
value: BAR
环境变量
您可以通过将它们添加到 Homestead.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
命令重新配置机器:
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”(默认):
sites:
- map: homestead.test
to: /home/vagrant/project1/public
php: "7.1"
在您的 Homestead 虚拟机中,您可以通过 CLI 使用任何支持的 PHP 版本:
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 版本:
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
。
您应仅在从主机计算机连接到数据库时使用这些非标准端口。您将在 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
文件中定义的作业调度,以确定要运行的调度任务。
如果您希望为 Homestead 站点运行 schedule:run
命令,可以在定义站点时将 schedule
选项设置为 true
:
sites:
- map: homestead.test
to: /home/vagrant/project1/public
schedule: true
该站点的 cron 作业将在 Homestead 虚拟机的 /etc/cron.d
目录中定义。
配置 Mailpit
Mailpit 允许您拦截发出的电子邮件并检查它,而无需实际将邮件发送给其收件人。要开始使用,请更新应用程序的 .env
文件以使用以下邮件设置:
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
文件具有以下选项:
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
命令:
buckets:
- name: your-bucket
policy: public
- name: your-private-bucket
policy: none
支持的 policy
值包括:none
、download
、upload
和 public
。
Laravel Dusk
为了在 Homestead 中运行 Laravel Dusk 测试,您应该在 Homestead 配置中启用 webdriver
功能:
features:
- 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
:
share homestead.test
运行该命令后,您将看到一个 Ngrok 屏幕,显示活动日志和共享站点的公共可访问 URL。如果您希望指定自定义区域、子域或其他 Ngrok 运行时选项,可以将它们添加到您的 share
命令中:
share 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
文件并添加以下配置:
; 如果 Homestead.yaml 包含不同的子网 IP 地址,则此地址可能不同...
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”设置:
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 虚拟机的网络接口。您可以根据需要配置任意数量的接口:
networks:
- type: "private_network"
ip: "192.168.10.20"
要启用 桥接 接口,请为网络配置 bridge
设置并将网络类型更改为 public_network
:
networks:
- type: "public_network"
ip: "192.168.10.20"
bridge: "en1: Wi-Fi (AirPort)"
要启用 DHCP,只需从配置中删除 ip
选项:
networks:
- type: "public_network"
bridge: "en1: Wi-Fi (AirPort)"
要更新网络使用的设备,您可以向网络的配置中添加 dev
选项。默认的 dev
值为 eth0
:
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 先前写入的任何配置:
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
文件中:
provider: virtualbox
natdnshostresolver: 'off'