跳至內容

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 應用程式所需的所有其他軟體。

exclamation

如果您使用的是 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 供應商:virtualboxparallels

provider: virtualbox
exclamation

如果您使用的是 Apple Silicon,則必須使用 Parallels 供應商。

設定共用資料夾

Homestead.yaml 檔案的 folders 屬性列出了您希望與 Homestead 環境共用的所有資料夾。當這些資料夾中的檔案變更時,它們將在您的本地機器和 Homestead 虛擬環境之間保持同步。您可以設定任意數量的共用資料夾

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

Windows 使用者不應使用 ~/ 路徑語法,而應使用專案的完整路徑,例如 C:\Users\user\Code\project1

您應該始終將個別應用程式對應到它們自己的資料夾對應,而不是對應包含您所有應用程式的單一大型目錄。當您對應資料夾時,虛擬機器必須追蹤資料夾中每個檔案的所有磁碟 IO。如果您的資料夾中有大量檔案,您可能會遇到效能下降的情況

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

使用 Homestead 時,您絕對不應掛載 .(目前目錄)。這會導致 Vagrant 不將目前資料夾對應到 /vagrant,並會在使用佈建時中斷選用功能並導致意外的結果。

若要啟用 NFS,您可以將 type 選項新增至您的資料夾對應

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

在 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 設定。

exclamation

Homestead 指令碼的建立盡可能地具有等冪性。但是,如果您在佈建時遇到問題,您應該執行 vagrant destroy && vagrant up 命令來銷毀並重建機器。

主機名稱解析

Homestead 使用 mDNS 發佈主機名稱以進行自動主機解析。如果您在 Homestead.yaml 檔案中設定 hostname: homestead,則主機將在 homestead.local 上可用。macOS、iOS 和 Linux 桌面發行版本預設包含 mDNS 支援。如果您使用的是 Windows,則必須安裝 適用於 Windows 的 Bonjour 列印服務

使用自動主機名稱對於 Homestead 的每個專案安裝效果最佳。如果您在單一 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 虛擬機,您就可以透過網頁瀏覽器存取該網站。

http://homestead.test

設定服務

Homestead 預設啟動多項服務;但是,您可以自訂在佈建期間啟用或停用的服務。例如,您可以透過修改 Homestead.yaml 檔案中的 services 選項來啟用 PostgreSQL 並停用 MySQL。

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

指定的服務將根據它們在 enableddisabled 指令中的順序來啟動或停止。

啟動 Vagrant Box

一旦您將 Homestead.yaml 編輯為您想要的樣子,請從您的 Homestead 目錄執行 vagrant up 命令。Vagrant 將啟動虛擬機器並自動設定您的共享資料夾和 Nginx 網站。

若要銷毀機器,您可以使用 vagrant destroy 命令。

每個專案的安裝

您可以為每個管理的專案設定一個 Homestead 實例,而不是全域安裝 Homestead 並在所有專案之間共享相同的 Homestead 虛擬機器。如果您希望將 Vagrantfile 與您的專案一起發佈,讓其他參與專案的人員在複製專案的儲存庫後可以立即 vagrant up,則每個專案安裝 Homestead 可能會很有幫助。

您可以使用 Composer 套件管理器將 Homestead 安裝到您的專案中。

composer require laravel/homestead --dev

安裝 Homestead 後,請呼叫 Homestead 的 make 命令來為您的專案產生 VagrantfileHomestead.yaml 檔案。這些檔案將放置在您專案的根目錄中。make 命令將自動設定 Homestead.yaml 檔案中的 sitesfolders 指令。

# 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 分配的記憶體。

lightbulb

請查看 Elasticsearch 文件,以了解如何自訂您的設定。

MariaDB

啟用 MariaDB 將會移除 MySQL 並安裝 MariaDB。MariaDB 通常可以作為 MySQL 的直接替代品,因此您仍然應該在應用程式的資料庫設定中使用 mysql 資料庫驅動程式。

MongoDB

預設的 MongoDB 安裝會將資料庫使用者名稱設定為 homestead,並將對應的密碼設定為 secret

Neo4j

預設的 Neo4j 安裝會將資料庫使用者名稱設定為 homestead,並將對應的密碼設定為 secret。若要存取 Neo4j 瀏覽器,請透過您的網頁瀏覽器訪問 http://homestead.test:7474。埠 7687 (Bolt)、7474 (HTTP) 和 7473 (HTTPS) 已準備好為 Neo4j 用戶端的請求提供服務。

別名

您可以透過修改 Homestead 目錄中的 aliases 檔案,將 Bash 別名新增到您的 Homestead 虛擬機器。

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.yamlafter.shaliases 檔案。

# 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
exclamation

在新增網站之前,您應該確保已為專案的目錄設定資料夾映射

如果 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"

可用的網站類型為:apacheapache-proxyapigilityexpressivelaravel(預設)、proxy(適用於 nginx)、silverstripestatamicsymfony2symfony4zf

網站參數

您可以透過 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 資料庫,您應該連線到埠 33060 (MySQL) 或 54320 (PostgreSQL) 上的 127.0.0.1。這兩個資料庫的使用者名稱和密碼均為 homestead / secret

exclamation

您應該僅在從主機電腦連線到資料庫時才使用這些非標準連接埠。由於 Laravel 是在虛擬機器內部執行,因此您將在 Laravel 應用程式的 database 設定檔中使用預設的 3306 和 5432 連接埠。

資料庫備份

當您的 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 後,您可以在 https://127.0.0.1:8025 存取 Mailpit 儀表板。

設定 Minio

Minio 是一個開源的物件儲存伺服器,並相容於 Amazon S3 API。若要安裝 Minio,請在您的 Homestead.yaml 檔案的 features 區塊中,加入以下組態選項:

minio: true

預設情況下,Minio 會在 9600 埠上運作。您可以透過瀏覽 https://127.0.0.1:9600 來存取 Minio 控制面板。預設的存取金鑰是 homestead,而預設的密鑰是 secretkey。在存取 Minio 時,您應始終使用區域 us-east-1

為了使用 Minio,請確保您的 .env 檔案具有以下選項:

AWS_USE_PATH_STYLE_ENDPOINT=true
AWS_ENDPOINT=https://127.0.0.1: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 值包括:nonedownloaduploadpublic

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 將可以讓您這麼做。

exclamation

請記住,Vagrant 本質上是不安全的,當您執行 share 命令時,您正在將您的虛擬機暴露在網際網路上。

偵錯與效能分析

使用 Xdebug 偵錯 Web 請求

Homestead 支援使用 Xdebug 進行逐步偵錯。例如,您可以在瀏覽器中存取一個頁面,而 PHP 會連線到您的 IDE,以允許檢查和修改正在執行的程式碼。

預設情況下,Xdebug 已經在運行並準備好接受連線。如果您需要在 CLI 上啟用 Xdebug,請在您的 Homestead 虛擬機中執行 sudo phpenmod xdebug 命令。接下來,請按照您的 IDE 指示啟用偵錯。最後,設定您的瀏覽器以使用擴充功能或 書籤小程式來觸發 Xdebug。

exclamation

Xdebug 會導致 PHP 的執行速度明顯變慢。若要停用 Xdebug,請在您的 Homestead 虛擬機中執行 sudo phpdismod xdebug 並重新啟動 FPM 服務。

自動啟動 Xdebug

當偵錯向網頁伺服器發出請求的功能測試時,自動啟動偵錯會比修改測試以傳遞自訂標頭或 Cookie 來觸發偵錯更容易。若要強制 Xdebug 自動啟動,請修改您的 Homestead 虛擬機內部的 /etc/php/7.x/fpm/conf.d/20-xdebug.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 是一個用於分析網頁請求和 CLI 應用程式的服務。它提供一個互動式使用者介面,以呼叫圖和時間軸顯示分析資料。它專為開發、預備和生產環境使用而建構,對終端使用者沒有額外負擔。此外,Blackfire 還提供程式碼和 php.ini 組態設定的效能、品質和安全性檢查。

Blackfire Player 是一個開源的網頁爬取、網頁測試和網頁資料擷取應用程式,可以與 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'