跳到主要內容

Homestead

📝 此頁面為 Laravel 官方文檔的繁體中文翻譯。查看原始英文版本

Laravel Homestead

簡介

[!WARNING] Laravel Homestead 是一個舊版套件,目前已停止維護。Laravel Sail 可作為現代化的替代方案。

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 Version Manager)
  • Solr
  • TimescaleDB
  • Trader (PHP extension)
  • Webdriver & Laravel Dusk Utilities

安裝和設定

第一步

在啟動 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

[!WARNING] 如果您使用 Apple Silicon,則需要 Parallels 供應商。

配置共享資料夾

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

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

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

您應該始終將單個應用程式映射到自己的資料夾映射,而不是映射包含所有應用程式的單個大目錄。當您映射資料夾時,虛擬機器必須追蹤資料夾中每個檔案的所有磁碟 IO。如果資料夾中有大量檔案,您可能會體驗到效能降低:

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 虛擬機內檔案和目錄的正確使用者/群組權限。

您還可以透過在 options 鍵下列出它們來傳遞 Vagrant Synced Folders 支援的任何選項:

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 配置。

[!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 實例上託管多個站點,您可以將站點的「網域」添加到您機器上的 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 box,您就可以透過 Web 瀏覽器存取該站點:

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 分配量的兩倍。

[!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 別名:

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

[!WARNING] 在添加站點之前,您應該確保已為專案的目錄配置了資料夾映射

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

連接資料庫

MySQL 和 PostgreSQL 都預設配置了一個 homestead 資料庫。要從主機的資料庫客戶端連接到您的 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

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,請使用 features 部分中的以下配置選項更新您的 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 值包括: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 將使您能夠做到這一點。

[!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 檔案並添加以下配置:

; 如果 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 目錄的根目錄(包含 Homestead.yaml 檔案的同一目錄)中建立一個 user-customizations.sh 檔案。在此檔案中,您可以進行任何您想要的自訂;但是,user-customizations.sh 不應被版本控制。

供應商特定設定

VirtualBox

natdnshostresolver

預設情況下,Homestead 將 natdnshostresolver 設定配置為 on。這允許 Homestead 使用您的主機作業系統的 DNS 設定。如果您想覆蓋此行為,請向您的 Homestead.yaml 檔案添加以下配置選項:

provider: virtualbox
natdnshostresolver: 'off'