Laravel 家园

Introduction

Laravel 致力于让整个 PHP 开发体验变得愉悦,包括您的本地开发环境。Laravel 家园 是一个官方的、预打包的 Vagrant 盒子,它为您提供了一个美妙的开发环境,而无需您在本地机器上安装 PHP、Web 服务器和任何其他服务器软件。

Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟机。 Vagrant 盒子是完全一次性的。如果出现问题,您可以在几分钟内销毁并重新创建盒子!

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 20.04
  • Git
  • 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
  • 节点(使用 Yarn、Bower、Grunt 和 Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • avahi
  • ngrok
  • Xdebug
  • XHProf / Tideways / XHGui
  • wp-cli

可选软件

  • Apache
  • Blackfire
  • Cassandra
  • Chronograf
  • CouchDB
  • 水晶和幸运框架
  • Elasticsearch
  • EventStoreDB
  • Gearman
  • Go
  • Grafana
  • InfluxDB
  • MariaDB
  • Meilisearch
  • MinIO
  • MongoDB
  • Neo4j
  • 哦我的 Zsh
  • 打开 Resty
  • PM2
  • Python
  • R
  • RabbitMQ
  • RVM(Ruby 版本管理器)
  • Solr
  • TimescaleDB
  • 商人(PHP 扩展)
  • Webdriver 和 Laravel Dusk 实用程序

安装与设置

第一步

在启动你的 Homestead 环境之前,你必须安装Vagrant 以及以下受支持的提供商之一:

所有这些软件包都为所有流行的操作系统提供了易于使用的可视化安装程序。

要使用 Parallels 提供程序,您需要安装Parallels Vagrant 插件.这个是免费的。

安装宅基地

您可以通过将 Homestead 存储库克隆到您的主机上来安装 Homestead。考虑将存储库克隆到Homestead Homestead 虚拟机将作为所有 Laravel 应用程序的主机。在本文档中,我们将此目录称为您的“Homestead 目录”:

git clone https://github.com/laravel/homestead.git ~/Homestead

克隆 Laravel Homestead 存储库后,你应该检查release 分支。该分支始终包含 Homestead 的最新稳定版本:

cd ~/Homestead

git checkout release

接下来,执行bash init.sh 从 Homestead 目录创建命令Homestead.yaml 配置文件。这Homestead.yaml 文件是您配置 Homestead 安装的所有设置的地方。该文件将放在 Homestead 目录中:

# macOS / Linux...
bash init.sh

# Windows...
init.bat

配置宅基地

设置您的供应商

provider 键入你的Homestead.yaml 文件指示应使用哪个 Vagrant 提供程序:virtualbox 或者parallels:

provider: virtualbox

Warning
如果您使用的是 Apple Silicon,则应添加box: laravel/homestead-arm 给你的Homestead.yaml 文件。 Apple Silicon 需要 Parallels 供应商。

配置共享文件夹

folders 的财产Homestead.yaml 文件列出了您希望与 Homestead 环境共享的所有文件夹。当这些文件夹中的文件发生变化时,它们将在您的本地计算机和 Homestead 虚拟环境之间保持同步。您可以根据需要配置任意数量的共享文件夹:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1

Warning
Windows 用户不应使用~/ path 语法,而不是应该使用他们项目的完整路径,例如C:\Users\user\Code\project1.

您应该始终将单个应用程序映射到它们自己的文件夹映射,而不是映射包含所有应用程序的单个大目录。映射文件夹时,虚拟机必须跟踪所有磁盘 IOevery 文件夹中的文件。如果文件夹中有大量文件,您可能会遇到性能下降的情况:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1
    - map: ~/code/project2
      to: /home/vagrant/project2

Warning
你不应该挂载. (当前目录)使用 Homestead 时。这会导致 Vagrant 不将当前文件夹映射到/vagrant 并且会在配置时破坏可选功能并导致意外结果。

启用NFS,你可以添加一个type 文件夹映射选项:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1
      type: "nfs"

Warning
在 Windows 上使用 NFS 时,您应该考虑安装vagrant-winnfsd 插入。该插件将为 Homestead 虚拟机中的文件和目录维护正确的用户/组权限。

您还可以传递 Vagrant 支持的任何选项同步文件夹 通过将它们列在options 钥匙:

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

如果你改变sites 配置 Homestead 虚拟机后,您应该执行vagrant reload --provision 在终端中使用命令更新虚拟机上的 Nginx 配置。

Warning
Homestead 脚本被构建为尽可能幂等。但是,如果您在配置时遇到问题,您应该通过执行以下命令销毁并重建机器vagrant destroy && vagrant up 命令。

主机名解析

Homestead 发布主机名使用mDNS 用于自动主机解析。如果你设置hostname: homestead 在你的Homestead.yaml 文件,主机将在homestead.local. macOS、iOS 和 Linux 桌面发行版包括mDNS 默认支持。如果您使用的是 Windows,则必须安装适用于 Windows 的 Bonjour 打印服务.

使用自动主机名最适合每个项目安装 宅基地。如果您在一个 Homestead 实例上托管多个网站,您可以将网站的“域”添加到hosts 你的机器上的文件。这hosts 文件会将对您的 Homestead 站点的请求重定向到您的 Homestead 虚拟机。在 macOS 和 Linux 上,此文件位于/etc/hosts.在 Windows 上,它位于C:\Windows\System32\drivers\etc\hosts.添加到此文件的行将如下所示:

192.168.56.56  homestead.test

确保列出的 IP 地址是您的Homestead.yaml 文件。将域添加到您的hosts 文件并启动 Vagrant 框,您将能够通过 Web 浏览器访问该站点:

http://homestead.test

配置服务

Homestead 默认启动了几个服务;但是,您可以自定义在供应期间启用或禁用哪些服务。例如,您可以通过修改services 你的选项Homestead.yaml 文件:

services:
    - enabled:
        - "postgresql"
    - disabled:
        - "mysql"

指定的服务将根据它们在enableddisabled 指令。

启动 Vagrant Box

一旦你编辑了Homestead.yaml 根据您的喜好,运行vagrant up 来自你的 Homestead 目录的命令。 Vagrant 将启动虚拟机并自动配置您的共享文件夹和 Nginx 站点。

要破坏机器,您可以使用vagrant destroy 命令。

每个项目安装

您可以为您管理的每个项目配置一个 Homestead 实例,而不是全局安装 Homestead 并在所有项目中共享同一个 Homestead 虚拟机。如果你想发布一个Vagrantfile与您的项目,允许其他人在该项目上工作vagrant up 克隆项目的存储库后立即。

你可以使用 Composer 包管理器将 Homestead 安装到你的项目中:

composer require laravel/homestead --dev

安装 Homestead 后,调用 Homestead 的make 命令生成VagrantfileHomestead.yaml 文件为您的项目。这些文件将放在项目的根目录中。这make 命令会自动配置sitesfolders 中的指令Homestead.yaml 文件:

# macOS / Linux...
php vendor/bin/homestead make

# Windows...
vendor\\bin\\homestead make

接下来,运行vagrant up 在您的终端中执行命令并访问您的项目http://homestead.test 在您的浏览器中。请记住,您仍然需要添加一个/etc/hosts 文件条目homestead.test 或者您选择的域,如果您不使用自动主机名解析.

安装可选功能

可选软件安装使用features 你的选项Homestead.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
    - elasticsearch:
        version: 7.9.0
    - eventstore: true
        version: 21.2.0
    - gearman: true
    - golang: true
    - grafana: true
    - influxdb: true
    - mariadb: true
    - meilisearch: true
    - minio: true
    - mongodb: true
    - mysql: true
    - neo4j: true
    - ohmyzsh: true
    - openresty: true
    - pm2: true
    - python: true
    - r-base: true
    - rabbitmq: true
    - rvm: true
    - solr: true
    - timescaledb: true
    - trader: true
    - webdriver: true

Elasticsearch

您可以指定支持的 Elasticsearch 版本,该版本必须是准确的版本号 (major.minor.patch)。默认安装将创建一个名为“homestead”的集群。你永远不应该给 Elasticsearch 超过一半的操作系统内存,所以确保你的 Homestead 虚拟机至少有两倍的 Elasticsearch 分配。

Note
查看弹性搜索文档 了解如何自定义您的配置。

MariaDB

启用 MariaDB 将删除 MySQL 并安装 MariaDB。 MariaDB 通常用作 MySQL 的直接替代品,因此您仍应使用mysql 应用程序数据库配置中的数据库驱动程序。

MongoDB

默认的 MongoDB 安装会将数据库用户名设置为homestead 以及对应的密码secret.

Neo4j

默认的 Neo4j 安装会将数据库用户名设置为homestead 以及对应的密码secret.要访问 Neo4j 浏览器,请访问http://homestead.test:7474 通过您的网络浏览器。港口7687 (螺栓),7474 (HTTP),和7473 (HTTPS) 已准备好处理来自 Neo4j 客户端的请求。

Aliases

你可以通过修改将 Bash 别名添加到你的 Homestead 虚拟机aliases 你的 Homestead 目录中的文件:

alias c='clear'
alias ..='cd ..'

更新后aliases 文件,您应该使用vagrant reload --provision 命令。这将确保您的新别名在机器上可用。

更新家园

在开始更新 Homestead 之前,您应该确保通过在 Homestead 目录中运行以下命令来删除当前的虚拟机:

vagrant destroy

接下来,您需要更新 Homestead 源代码。如果您克隆了存储库,则可以在您最初克隆存储库的位置执行以下命令:

git fetch

git pull origin release

这些命令从 GitHub 存储库中拉取最新的 Homestead 代码,获取最新的标签,然后查看最新的标记版本。你可以在 Homestead 上找到最新的稳定版本GitHub 发布页面.

如果你已经通过你的项目安装了 Homesteadcomposer.json 文件,你应该确保你的composer.json 文件包含"laravel/homestead": "^12" 并更新您的依赖项:

composer update

接下来,您应该使用vagrant box update 命令:

vagrant box update

更新 Vagrant box 后,你应该运行bash init.sh 来自 Homestead 目录的命令,以更新 Homestead 的附加配置文件。系统会询问您是否要覆盖现有的Homestead.yaml,after.sh, 和aliases 文件:

# macOS / Linux...
bash init.sh

# Windows...
init.bat

最后,您需要重新生成 Homestead 虚拟机以使用最新的 Vagrant 安装:

vagrant up

日常使用

通过 SSH 连接

您可以通过执行 SSH 进入您的虚拟机vagrant ssh 来自你的 Homestead 目录的终端命令。

添加其他网站

一旦你的 Homestead 环境配置并运行,你可能想要为你的其他 Laravel 项目添加额外的 Nginx 站点。你可以在一个 Homestead 环境中运行任意数量的 Laravel 项目。要添加其他站点,请将该站点添加到您的Homestead.yaml 文件。

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public
    - map: another.test
      to: /home/vagrant/project2/public

Warning
你应该确保你已经配置了一个文件夹映射 在添加站点之前为项目的目录。

如果 Vagrant 没有自动管理您的“主机”文件,您可能还需要将新站点添加到该文件。在 macOS 和 Linux 上,此文件位于/etc/hosts.在 Windows 上,它位于C:\Windows\System32\drivers\etc\hosts:

192.168.56.56  homestead.test
192.168.56.56  another.test

添加站点后,执行vagrant reload --provision 来自你的 Homestead 目录的终端命令。

网站类型

Homestead 支持多种“类型”的站点,让您可以轻松运行不基于 Laravel 的项目。例如,我们可以使用以下方法轻松地将 Statamic 应用程序添加到 Homesteadstatamic 网站类型:

sites:
    - map: statamic.test
      to: /home/vagrant/my-symfony-project/web
      type: "statamic"

可用的网站类型有:apache,apigility,expressive,laravel (默认),proxy,silverstripe,statamic,symfony2,symfony4, 和zf.

场地参数

你可以添加额外的 Nginxfastcgi_param 通过params 站点指令:

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 用户。

Ports

默认情况下,以下端口会转发到您的 Homestead 环境:

  • HTTP: 8000 → 转发到 80
  • HTTPS: 44300 → 转发到 443

转发额外的端口

如果你愿意,你可以通过定义一个ports 您的配置条目Homestead.yaml 文件。更新后Homestead.yaml 文件,请务必通过执行以下命令重新配置机器vagrant reload --provision 命令:

ports:
    - send: 50000
      to: 5000
    - send: 7777
      to: 777
      protocol: udp

以下是您可能希望从主机映射到 Vagrant box 的其他 Homestead 服务端口列表:

  • SSH: 2222 → 至 22
  • ngrok 用户界面: 4040 → 至 4040
  • MySQL: 33060 → 至 3306
  • PostgreSQL: 54320 → 至 5432
  • MongoDB: 27017 → 至 27017
  • Mailhog: 8025 → 至 8025
  • Minio: 9600 → 至 9600

PHP 版本

Homestead 支持在同一个虚拟机上运行多个版本的 PHP。您可以在您的Homestead.yaml 文件。可用的 PHP 版本为:“5.6”、“7.0”、“7.1”、“7.2”、“7.3”、“7.4”、“8.0”、“8.1”和“8.2”(默认):

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

您可以通过在 Homestead 虚拟机中发出以下命令来更改 CLI 使用的默认 PHP 版本:

php56
php70
php71
php72
php73
php74
php80
php81
php82

连接到数据库

Ahomestead 开箱即用地为 MySQL 和 PostgreSQL 配置数据库。要从主机的数据库客户端连接到 MySQL 或 PostgreSQL 数据库,您应该连接到127.0.0.1 在港口33060 (MySQL) 或54320 (PostgreSQL)。两个数据库的用户名和密码是homestead /secret.

Warning
从主机连接到数据库时,您应该只使用这些非标准端口。你将在你的 Laravel 应用程序中使用默认的 3306 和 5432 端口database 配置文件,因为 Laravel 正在运行within 虚拟机。

数据库备份

当您的 Homestead 虚拟机被破坏时,Homestead 可以自动备份您的数据库。要使用此功能,您必须使用 Vagrant 2.1.0 或更高版本。或者,如果您使用的是旧版本的 Vagrant,则必须安装vagrant-triggers 插入。要启用自动数据库备份,请将以下行添加到您的Homestead.yaml 文件:

backup: true

配置完成后,Homestead 会将您的数据库导出到.backup/mysql_backup.backup/postgres_backup 目录时vagrant destroy 命令被执行。这些目录可以在你安装 Homestead 的文件夹中找到,如果你使用每个项目安装 方法。

配置 Cron 计划

Laravel 提供了一种方便的方式来安排 cron 作业 通过安排一个schedule:run Artisan 命令每分钟运行一次。这schedule:run 命令将检查您定义的作业计划App\Console\Kernel 类来确定要运行的计划任务。

如果你想schedule:run 要为 Homestead 站点运行的命令,您可以设置schedule 选择权true 定义站点时:

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public
      schedule: true

该站点的 cron 作业将在/etc/cron.d Homestead 虚拟机的目录。

配置 MailHog

MailHog 允许您拦截外发电子邮件并对其进行检查,而无需实际将邮件发送给其收件人。首先,更新您的应用程序的.env 文件以使用以下邮件设置:

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

配置 MailHog 后,您可以访问 MailHog 仪表板,网址为http://localhost:8025.

配置迷你

Minio 是具有 Amazon S3 兼容 API 的开源对象存储服务器。要安装 Minio,请更新您的Homestead.yaml文件中包含以下配置选项features 部分:

minio: true

默认情况下,Minio 在端口 9600 上可用。您可以访问 Minio 控制面板http://localhost:9600.默认访问密钥是homestead, 而默认密钥是secretkey.访问 Minio 时,你应该始终使用 regionus-east-1.

为了使用 Minio,您需要在您的应用程序中调整 S3 磁盘配置config/filesystems.php 配置文件。您将需要添加use_path_style_endpoint 磁盘配置选项以及更改url 关键endpoint:

's3' => [
    'driver' => 's3',
    'key' => env('AWS_ACCESS_KEY_ID'),
    'secret' => env('AWS_SECRET_ACCESS_KEY'),
    'region' => env('AWS_DEFAULT_REGION'),
    'bucket' => env('AWS_BUCKET'),
    'endpoint' => env('AWS_URL'),
    'use_path_style_endpoint' => true,
]

最后,确保您的.env 文件有以下选项:

AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1
AWS_URL=http://localhost:9600

要配置由 Minio 驱动的“S3”存储桶,请添加一个buckets 对你的指令Homestead.yaml 文件。在定义了你的桶之后,你应该执行vagrant reload --provision 终端中的命令:

buckets:
    - name: your-bucket
      policy: public
    - name: your-private-bucket
      policy: none

支持的policy 价值观包括:none,download,upload, 和public.

Laravel 黄昏

为了运行Laravel 黄昏 在 Homestead 中进行测试,你应该启用webdriver 特征 在你的 Homestead 配置中:

features:
    - webdriver: true

启用后webdriver 功能,你应该执行vagrant reload --provision 命令在你的终端。

共享您的环境

有时您可能希望与同事或客户分享您当前的工作。 Vagrant 通过vagrant share 命令;但是,如果您在您的网站中配置了多个站点,这将不起作用Homestead.yaml 文件。

为了解决这个问题,Homestead 包含了它自己的share 命令。开始,SSH 进入你的 Homestead 虚拟机 通过vagrant ssh 并执行share homestead.test 命令。此命令将共享homestead.test 从你的网站Homestead.yaml 配置文件。您可以用任何其他配置的站点替换homestead.test:

share homestead.test

运行该命令后,您将看到一个 Ngrok 屏幕出现,其中包含活动日志和共享站点的可公开访问的 URL。如果您想指定自定义区域、子域或其他 Ngrok 运行时选项,您可以将它们添加到您的share 命令:

share homestead.test -region=eu -subdomain=laravel

Warning
请记住,Vagrant 本质上是不安全的,并且在运行share 命令。

调试和分析

使用 Xdebug 调试 Web 请求

Homestead 包括对步骤调试的支持Xdebug.例如,您可以在浏览器中访问一个页面,PHP 将连接到您的 IDE 以允许检查和修改正在运行的代码。

默认情况下,Xdebug 已经在运行并准备接受连接。如果您需要在 CLI 上启用 Xdebug,请执行sudo phpenmod xdebug 在您的 Homestead 虚拟机中执行命令。接下来,按照 IDE 的说明启用调试。最后,将您的浏览器配置为使用扩展程序触发 Xdebug 或bookmarklet.

Warning
Xdebug 导致 PHP 运行速度明显变慢。要禁用 Xdebug,请运行sudo phpdismod xdebug 在你的 Homestead 虚拟机中并重启 FPM 服务。

自动启动 Xdebug

在调试向 Web 服务器发出请求的功能测试时,自动启动调试比修改测试以通过自定义标头或 cookie 来触发调试更容易。要强制 Xdebug 自动启动,请修改/etc/php/7.x/fpm/conf.d/20-xdebug.ini 在 Homestead 虚拟机中添加文件并添加以下配置:

; 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 应用程序,请使用xphp Homestead 虚拟机中的 shell 别名:

xphp /path/to/script

使用 Blackfire 分析应用程序

Blackfire 是用于分析 Web 请求和 CLI 应用程序的服务。它提供了一个交互式用户界面,可以在调用图和时间线中显示配置文件数据。它专为在开发、暂存和生产中使用而构建,对最终用户没有任何开销。此外,Blackfire 还提供代码性能、质量和安全检查,以及php.ini 配置设置。

黑火播放器 是一个开源的网络爬虫、网络测试和网络抓取应用程序,它可以与 Blackfire 联合工作以编写分析场景的脚本。

要启用 Blackfire,请使用 Homestead 配置文件中的“功能”设置:

features:
    - blackfire:
        server_id: "server_id"
        server_token: "server_value"
        client_id: "client_id"
        client_token: "client_value"

Blackfire 服务器凭据和客户端凭据需要一个 Blackfire 帐户. Blackfire 提供多种选项来分析应用程序,包括 CLI 工具和浏览器扩展。请查看 Blackfire 文档以获取更多详细信息.

网络接口

networks 的财产Homestead.yaml 文件为您的 Homestead 虚拟机配置网络接口。您可以根据需要配置任意数量的接口:

networks:
    - type: "private_network"
      ip: "192.168.10.20"

启用一个bridged 接口,配置一个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)"

扩建宅基地

你可以使用扩展 Homesteadafter.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 以更好地适应您的个人开发风格。为此,您可以创建一个user-customizations.sh 文件在你的 Homestead 目录的根目录中(包含你的相同目录Homestead.yaml 文件)。在此文件中,您可以进行任何自定义;但是,那user-customizations.sh 不应受版本控制。

提供商特定设置

VirtualBox

natdnshostresolver

默认情况下,Homestead 配置natdnshostresolver 设置为on.这允许 Homestead 使用主机操作系统的 DNS 设置。如果您想覆盖此行为,请将以下配置选项添加到您的Homestead.yaml 文件:

provider: virtualbox
natdnshostresolver: 'off'

Windows 上的符号链接

如果符号链接在您的 Windows 机器上无法正常工作,您可能需要将以下块添加到您的Vagrantfile:

config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
豫ICP备18041297号-2