Laravel Homestead
簡介
Laravel 致力於使整個 PHP 開發體驗令人愉快,包括您的本機開發環境。Laravel Homestead 是一個官方預先封裝的 Vagrant box,它為您提供絕佳的開發環境,而無需在本機上安裝 PHP、網頁伺服器或任何其他伺服器軟體。
Vagrant 提供了一種簡單優雅的方式來管理和佈建虛擬機器。Vagrant box 是完全可拋棄式的。如果出現問題,您可以在幾分鐘內銷毀並重新建立 box!
Homestead 可以在任何 Windows、macOS 或 Linux 系統上運行,並且包含 Nginx、PHP、MySQL、PostgreSQL、Redis、Memcached、Node 以及開發出色 Laravel 應用程式所需的所有其他軟體。
如果您使用 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。考慮將儲存庫複製到您「home」目錄下的 Homestead
資料夾中,因為 Homestead 虛擬機器將作為您所有 Laravel 應用程式的主機。在本文檔中,我們將此目錄稱為您的「Homestead 目錄」。
1git clone https://github.com/laravel/homestead.git ~/Homestead
複製 Laravel Homestead 儲存庫後,您應該 checkout 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,則必須安裝 適用於 Windows 的 Bonjour Print Services。
使用自動主機名稱最適用於 Homestead 的每個專案安裝。如果您在單個 Homestead 實例上託管多個站點,您可以將網站的「網域」新增至您機器上的 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 後,您就可以透過網頁瀏覽器存取該站點。
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 瀏覽器,請透過您的網頁瀏覽器造訪 http://homestead.test:7474
。連接埠 7687
(Bolt)、7474
(HTTP) 和 7473
(HTTPS) 已準備好為來自 Neo4j 客戶端的請求提供服務。
別名
您可以透過修改 Homestead 目錄中的 aliases
檔案,將 Bash 別名新增至您的 Homestead 虛擬機器。
1alias c='clear'2alias ..='cd ..'
更新 aliases
檔案後,您應該使用 vagrant reload --provision
命令重新佈建 Homestead 虛擬機器。這將確保您的新別名在機器上可用。
更新 Homestead
在開始更新 Homestead 之前,您應該確保已移除目前的虛擬機器,方法是在您的 Homestead 目錄中執行以下命令。
1vagrant destroy
接下來,您需要更新 Homestead 原始碼。如果您複製了儲存庫,您可以在最初複製儲存庫的位置執行以下命令。
1git fetch2 3git pull origin release
這些命令從 GitHub 儲存庫提取最新的 Homestead 程式碼、擷取最新的標籤,然後 checkout 最新的標籤發行版。您可以在 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
連接到資料庫
homestead
資料庫已針對 MySQL 和 PostgreSQL 進行開箱即用的設定。若要從主機的資料庫客戶端連接到您的 MySQL 或 PostgreSQL 資料庫,您應該連接到連接埠 33060
(MySQL) 或 54320
(PostgreSQL) 上的 127.0.0.1
。這兩個資料庫的使用者名稱和密碼都是 homestead
/ secret
。
您應該僅在從主機連接到資料庫時使用這些非標準連接埠。您將在 Laravel 應用程式的 database
設定檔中使用預設的 3306 和 5432 連接埠,因為 Laravel 是在虛擬機器內運行的。
資料庫備份
當您的 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://127.0.0.1:8025
存取 Mailpit 儀表板。
設定 Minio
Minio 是一個開源物件儲存伺服器,具有與 Amazon S3 相容的 API。若要安裝 Minio,請使用 features 區段中的以下設定選項更新您的 Homestead.yaml
檔案。
1minio: true
預設情況下,Minio 在連接埠 9600 上可用。您可以透過造訪 https://127.0.0.1:9600
來存取 Minio 控制面板。預設存取金鑰為 homestead
,而預設密碼金鑰為 secretkey
。存取 Minio 時,您應始終使用區域 us-east-1
。
為了使用 Minio,請確保您的 .env
檔案具有以下選項。
1AWS_USE_PATH_STYLE_ENDPOINT=true2AWS_ENDPOINT=https://127.0.0.1:96003AWS_ACCESS_KEY_ID=homestead4AWS_SECRET_ACCESS_KEY=secretkey5AWS_DEFAULT_REGION=us-east-1
若要佈建 Minio 驅動的「S3」儲存桶,請將 buckets
指令新增至您的 Homestead.yaml
檔案。定義儲存桶後,您應該在終端機中執行 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 畫面出現,其中包含活動記錄和共享站點的公開存取網址。如果您想要指定自訂區域、子網域或其他 Ngrok 執行階段選項,您可以將它們新增至您的 share
命令。
1share homestead.test -region=eu -subdomain=laravel
如果您需要透過 HTTPS 而不是 HTTP 分享內容,則使用 sshare
命令而不是 share
將使您能夠做到這一點。
請記住,Vagrant 本質上是不安全的,並且當您運行 share
命令時,您正在將您的虛擬機器暴露於網際網路。
除錯與效能分析
使用 Xdebug 除錯網頁請求
Homestead 包含使用 Xdebug 進行逐步除錯的支援。例如,您可以在瀏覽器中存取頁面,而 PHP 將連接到您的 IDE,以允許檢查和修改正在運行的程式碼。
預設情況下,Xdebug 已經在運行並準備好接受連線。如果您需要在 CLI 上啟用 Xdebug,請在您的 Homestead 虛擬機器中執行 sudo phpenmod xdebug
命令。接下來,按照 IDE 的指示啟用除錯。最後,設定您的瀏覽器以使用擴充功能或 書籤小程式觸發 Xdebug。
Xdebug 會導致 PHP 運行速度明顯變慢。若要停用 Xdebug,請在您的 Homestead 虛擬機器中運行 sudo phpdismod xdebug
並重新啟動 FPM 服務。
自動啟動 Xdebug
在除錯向網頁伺服器發出請求的功能測試時,自動啟動除錯比修改測試以傳遞自訂標頭或 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 是一項用於分析網頁請求和 CLI 應用程式的服務。它提供了一個互動式使用者介面,可在呼叫圖和時間軸中顯示效能分析資料。它專為開發、預備和生產環境而建置,對終端使用者沒有額外負擔。此外,Blackfire 還提供程式碼和 php.ini
設定檔設定的效能、品質和安全性檢查。
Blackfire Player 是一個開源的網頁爬取、網頁測試和網頁抓取應用程式,可以與 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"
若要啟用橋接介面,請為網路設定 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'