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 ~/Homestead2 3git checkout release
接下來,在 Homestead 目錄中執行 bash init.sh 命令,以建立 Homestead.yaml 配置檔案。Homestead.yaml 檔案是你配置 Homestead 安裝所有設定的地方。此檔案將放置在 Homestead 目錄中。
1# macOS / Linux...2bash init.sh3 4# Windows...5init.bat
配置 Homestead
設定提供商
Homestead.yaml 檔案中的 provider 鍵指示應使用哪個 Vagrant 提供商:virtualbox 或 parallels。
1provider: virtualbox
如果你使用的是 Apple Silicon,則必須使用 Parallels 提供商。
配置共享資料夾
Homestead.yaml 檔案中的 folders 屬性列出了你希望與 Homestead 環境共享的所有資料夾。當這些資料夾中的檔案發生變化時,它們會在你的本地機器和 Homestead 虛擬環境之間保持同步。你可以根據需要配置任意數量的共享資料夾。
1folders:2 - map: ~/code/project13 to: /home/vagrant/project1
Windows 使用者不應使用 ~/ 路徑語法,而應使用專案的完整路徑,例如 C:\Users\user\Code\project1。
你應該始終將各個應用程式對映到它們自己的資料夾對映中,而不是對映包含所有應用程式的單個大目錄。當你對映一個資料夾時,虛擬機器必須跟蹤該資料夾中每個檔案的所有磁碟 IO。如果資料夾中有大量檔案,你可能會遇到效能下降的情況。
1folders:2 - map: ~/code/project13 to: /home/vagrant/project14 - map: ~/code/project25 to: /home/vagrant/project2
使用 Homestead 時,永遠不要掛載 .(當前目錄)。這會導致 Vagrant 無法將當前資料夾正確對映到 /vagrant,從而破壞可選功能,並在配置過程中導致意想不到的結果。
要啟用 NFS,你可以為資料夾對映新增 type 選項。
1folders:2 - map: ~/code/project13 to: /home/vagrant/project14 type: "nfs"
在 Windows 上使用 NFS 時,應考慮安裝 vagrant-winnfsd 外掛。該外掛將維護 Homestead 虛擬機器內檔案和目錄的正確使用者/組許可權。
你也可以透過在 options 鍵下列出 Vagrant 同步資料夾 支援的任何選項來傳遞它們。
1folders:2 - map: ~/code/project13 to: /home/vagrant/project14 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.test3 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"
指定的服務將根據它們在 enabled 和 disabled 指令中的順序進行啟動或停止。
啟動 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 命令來為你的專案生成 Vagrantfile 和 Homestead.yaml 檔案。這些檔案將放置在你的專案根目錄中。make 命令將自動配置 Homestead.yaml 檔案中的 sites 和 folders 指令。
1# macOS / Linux...2php vendor/bin/homestead make3 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: true10 - crystal: true11 - dragonflydb: true12 - elasticsearch:13 version: 7.9.014 - eventstore: true15 version: 21.2.016 - flyway: true17 - gearman: true18 - golang: true19 - grafana: true20 - influxdb: true21 - logstash: true22 - mariadb: true23 - meilisearch: true24 - minio: true25 - mongodb: true26 - neo4j: true27 - ohmyzsh: true28 - openresty: true29 - pm2: true30 - python: true31 - r-base: true32 - rabbitmq: true33 - rustc: true34 - rvm: true35 - solr: true36 - timescaledb: true37 - trader: true38 - 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 fetch2 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.yaml、after.sh 和 aliases 檔案。
1# macOS / Linux...2bash init.sh3 4# Windows...5init.bat
最後,你需要重新生成 Homestead 虛擬機器以使用最新的 Vagrant 安裝。
1vagrant up
日常使用
透過 SSH 連線
你可以透過在 Homestead 目錄中執行 vagrant ssh 終端命令來 SSH 進入你的虛擬機器。
新增額外站點
一旦你的 Homestead 環境配置完成並執行,你可能需要為其他 Laravel 專案新增額外的 Nginx 站點。你可以在單個 Homestead 環境中執行任意數量的 Laravel 專案。要新增額外的站點,請將其新增到 Homestead.yaml 檔案中。
1sites:2 - map: homestead.test3 to: /home/vagrant/project1/public4 - map: another.test5 to: /home/vagrant/project2/public
在新增站點之前,你應該確保已經為該專案目錄配置了 資料夾對映。
如果 Vagrant 沒有自動管理你的“hosts”檔案,你可能還需要將新站點新增到該檔案中。在 macOS 和 Linux 上,此檔案位於 /etc/hosts。在 Windows 上,它位於 C:\Windows\System32\drivers\etc\hosts。
1192.168.56.56 homestead.test2192.168.56.56 another.test
站點新增完成後,在 Homestead 目錄中執行 vagrant reload --provision 終端命令。
站點型別
Homestead 支援多種“型別”的站點,使你能夠輕鬆執行非 Laravel 專案。例如,我們可以使用 statamic 站點型別輕鬆地將 Statamic 應用程式新增到 Homestead。
1sites:2 - map: statamic.test3 to: /home/vagrant/my-symfony-project/web4 type: "statamic"
可用的站點型別包括:apache, apache-proxy, apigility, expressive, laravel (預設), proxy (針對 nginx), silverstripe, statamic, symfony2, symfony4 和 zf。
站點引數
你可以透過 params 站點指令向站點新增額外的 Nginx fastcgi_param 值。
1sites:2 - map: homestead.test3 to: /home/vagrant/project1/public4 params:5 - key: FOO6 value: BAR
環境變數
你可以透過將全域性環境變數新增到 Homestead.yaml 檔案來定義它們。
1variables:2 - key: APP_ENV3 value: local4 - key: FOO5 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: 500003 to: 50004 - send: 77775 to: 7776 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.test3 to: /home/vagrant/project1/public4 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 list10php8.3 artisan list
你可以透過在 Homestead 虛擬機器內執行以下命令,來更改 CLI 使用的預設 PHP 版本:
1php56 2php70 3php71 4php72 5php73 6php74 7php80 8php81 9php8210php83
連線資料庫
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.test3 to: /home/vagrant/project1/public4 schedule: true
該站點的 cron 任務將定義在 Homestead 虛擬機器的 /etc/cron.d 目錄中。
配置 Mailpit
Mailpit 允許你攔截外發郵件並進行檢查,而無需真正將郵件傳送給收件人。要開始使用,請更新應用程式的 .env 檔案以使用以下郵件設定:
1MAIL_MAILER=smtp2MAIL_HOST=localhost3MAIL_PORT=10254MAIL_USERNAME=null5MAIL_PASSWORD=null6MAIL_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=true2AWS_ENDPOINT=https://:96003AWS_ACCESS_KEY_ID=homestead4AWS_SECRET_ACCESS_KEY=secretkey5AWS_DEFAULT_REGION=us-east-1
要配置由 Minio 驅動的“S3”儲存桶,請在 Homestead.yaml 檔案中新增 buckets 指令。定義好儲存桶後,你應該在終端執行 vagrant reload --provision 命令。
1buckets:2 - name: your-bucket3 policy: public4 - name: your-private-bucket5 policy: none
受支援的 policy 值包括:none, download, upload 和 public。
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.13xdebug.mode = debug4xdebug.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: virtualbox2natdnshostresolver: 'off'