跳轉至內容

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 ~/Homestead
2 
3git checkout release

接下來,在 Homestead 目錄中執行 bash init.sh 命令,以建立 Homestead.yaml 配置檔案。Homestead.yaml 檔案是你配置 Homestead 安裝所有設定的地方。此檔案將放置在 Homestead 目錄中。

1# macOS / Linux...
2bash init.sh
3 
4# Windows...
5init.bat

配置 Homestead

設定提供商

Homestead.yaml 檔案中的 provider 鍵指示應使用哪個 Vagrant 提供商:virtualboxparallels

1provider: virtualbox

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

配置共享資料夾

Homestead.yaml 檔案中的 folders 屬性列出了你希望與 Homestead 環境共享的所有資料夾。當這些資料夾中的檔案發生變化時,它們會在你的本地機器和 Homestead 虛擬環境之間保持同步。你可以根據需要配置任意數量的共享資料夾。

1folders:
2 - map: ~/code/project1
3 to: /home/vagrant/project1

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

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

1folders:
2 - map: ~/code/project1
3 to: /home/vagrant/project1
4 - map: ~/code/project2
5 to: /home/vagrant/project2

使用 Homestead 時,永遠不要掛載 .(當前目錄)。這會導致 Vagrant 無法將當前資料夾正確對映到 /vagrant,從而破壞可選功能,並在配置過程中導致意想不到的結果。

要啟用 NFS,你可以為資料夾對映新增 type 選項。

1folders:
2 - map: ~/code/project1
3 to: /home/vagrant/project1
4 type: "nfs"

在 Windows 上使用 NFS 時,應考慮安裝 vagrant-winnfsd 外掛。該外掛將維護 Homestead 虛擬機器內檔案和目錄的正確使用者/組許可權。

你也可以透過在 options 鍵下列出 Vagrant 同步資料夾 支援的任何選項來傳遞它們。

1folders:
2 - map: ~/code/project1
3 to: /home/vagrant/project1
4 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.test
3 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"

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

啟動 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 命令來為你的專案生成 VagrantfileHomestead.yaml 檔案。這些檔案將放置在你的專案根目錄中。make 命令將自動配置 Homestead.yaml 檔案中的 sitesfolders 指令。

1# macOS / Linux...
2php vendor/bin/homestead make
3 
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: true
10 - crystal: true
11 - dragonflydb: true
12 - elasticsearch:
13 version: 7.9.0
14 - eventstore: true
15 version: 21.2.0
16 - flyway: true
17 - gearman: true
18 - golang: true
19 - grafana: true
20 - influxdb: true
21 - logstash: true
22 - mariadb: true
23 - meilisearch: true
24 - minio: true
25 - mongodb: true
26 - neo4j: true
27 - ohmyzsh: true
28 - openresty: true
29 - pm2: true
30 - python: true
31 - r-base: true
32 - rabbitmq: true
33 - rustc: true
34 - rvm: true
35 - solr: true
36 - timescaledb: true
37 - trader: true
38 - 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 fetch
2 
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.yamlafter.shaliases 檔案。

1# macOS / Linux...
2bash init.sh
3 
4# Windows...
5init.bat

最後,你需要重新生成 Homestead 虛擬機器以使用最新的 Vagrant 安裝。

1vagrant up

日常使用

透過 SSH 連線

你可以透過在 Homestead 目錄中執行 vagrant ssh 終端命令來 SSH 進入你的虛擬機器。

新增額外站點

一旦你的 Homestead 環境配置完成並執行,你可能需要為其他 Laravel 專案新增額外的 Nginx 站點。你可以在單個 Homestead 環境中執行任意數量的 Laravel 專案。要新增額外的站點,請將其新增到 Homestead.yaml 檔案中。

1sites:
2 - map: homestead.test
3 to: /home/vagrant/project1/public
4 - map: another.test
5 to: /home/vagrant/project2/public

在新增站點之前,你應該確保已經為該專案目錄配置了 資料夾對映

如果 Vagrant 沒有自動管理你的“hosts”檔案,你可能還需要將新站點新增到該檔案中。在 macOS 和 Linux 上,此檔案位於 /etc/hosts。在 Windows 上,它位於 C:\Windows\System32\drivers\etc\hosts

1192.168.56.56 homestead.test
2192.168.56.56 another.test

站點新增完成後,在 Homestead 目錄中執行 vagrant reload --provision 終端命令。

站點型別

Homestead 支援多種“型別”的站點,使你能夠輕鬆執行非 Laravel 專案。例如,我們可以使用 statamic 站點型別輕鬆地將 Statamic 應用程式新增到 Homestead。

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

可用的站點型別包括:apache, apache-proxy, apigility, expressive, laravel (預設), proxy (針對 nginx), silverstripe, statamic, symfony2, symfony4zf

站點引數

你可以透過 params 站點指令向站點新增額外的 Nginx fastcgi_param 值。

1sites:
2 - map: homestead.test
3 to: /home/vagrant/project1/public
4 params:
5 - key: FOO
6 value: BAR

環境變數

你可以透過將全域性環境變數新增到 Homestead.yaml 檔案來定義它們。

1variables:
2 - key: APP_ENV
3 value: local
4 - key: FOO
5 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: 50000
3 to: 5000
4 - send: 7777
5 to: 777
6 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.test
3 to: /home/vagrant/project1/public
4 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 list
10php8.3 artisan list

你可以透過在 Homestead 虛擬機器內執行以下命令,來更改 CLI 使用的預設 PHP 版本:

1php56
2php70
3php71
4php72
5php73
6php74
7php80
8php81
9php82
10php83

連線資料庫

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.test
3 to: /home/vagrant/project1/public
4 schedule: true

該站點的 cron 任務將定義在 Homestead 虛擬機器的 /etc/cron.d 目錄中。

配置 Mailpit

Mailpit 允許你攔截外發郵件並進行檢查,而無需真正將郵件傳送給收件人。要開始使用,請更新應用程式的 .env 檔案以使用以下郵件設定:

1MAIL_MAILER=smtp
2MAIL_HOST=localhost
3MAIL_PORT=1025
4MAIL_USERNAME=null
5MAIL_PASSWORD=null
6MAIL_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=true
2AWS_ENDPOINT=https://:9600
3AWS_ACCESS_KEY_ID=homestead
4AWS_SECRET_ACCESS_KEY=secretkey
5AWS_DEFAULT_REGION=us-east-1

要配置由 Minio 驅動的“S3”儲存桶,請在 Homestead.yaml 檔案中新增 buckets 指令。定義好儲存桶後,你應該在終端執行 vagrant reload --provision 命令。

1buckets:
2 - name: your-bucket
3 policy: public
4 - name: your-private-bucket
5 policy: none

受支援的 policy 值包括:none, download, uploadpublic

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.1
3xdebug.mode = debug
4xdebug.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: virtualbox
2natdnshostresolver: 'off'