Homestead
Homestead
Laravel Homestead
簡介
Laravel 致力于讓整個 PHP 開發(fā)體驗變的更愉快,包括你的本地開發(fā)環(huán)境。 Vagrant 提供了一種簡單、優(yōu)雅的方式來管理和配置虛擬主機(jī)。
Laravel Homestead 是一個官方預(yù)封裝的 Vagrant box ,它為你提供了一個完美的開發(fā)環(huán)境,你不需要在本地機(jī)器安裝 PHP、 web 服務(wù)器和其他的服務(wù)器軟件。你再也不用擔(dān)心會弄亂你的操作系統(tǒng)了! Vagrant boxes 是一次性的。 如果出現(xiàn)問題, 你可以在幾分鐘內(nèi)銷毀并重新創(chuàng)建 box !
Homestead 可以運行在任何 Windows、 Mac、 或 Linux 系統(tǒng), 它包括了 Nginx web 服務(wù)器, PHP 7.3、 PHP 7.2、 PHP 7.1、 MySQL、PostgreSQL、Redis、 Memcached、 Node 以及你開發(fā) Laravel 所需要的東西。
{note} 如果你使用的是 Windows, 你可能需要通過 BIOS 來啟用硬件虛擬化 (VT-x)。如果你在 Hyper-V 系統(tǒng)上使用 UEFI 你可能還需要禁用 Hyper-V 以便訪問 VT-x.
內(nèi)置軟件
- Ubuntu 18.04
- Git
- PHP 7.3
- PHP 7.2
- PHP 7.1
- Nginx
- Apache (Optional)
- MySQL
- MariaDB (Optional)
- Sqlite3
- PostgreSQL
- Composer
- Node (With Yarn, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- Neo4j (Optional)
- MongoDB (Optional)
- Elasticsearch (Optional)
- ngrok
- wp-cli
- Zend Z-Ray
- Go
- Minio
安裝 & 設(shè)置
第一步
在你啟動 Homestead 環(huán)境之前,你必須安裝 VirtualBox, VMWare, Parallels 或 Hyper-V 以及 Vagrant. 以上所有軟件均針對不同的操作系統(tǒng)提供了易于使用的可視化安裝包。
若要使用 VMware 提供器, 你需要購買 VMware Fusion / Workstation 和 VMware Vagrant plug-in. 雖然它不是免費的,但是 VMware 可以提供更快的共享文件夾性能。
若要使用 Parallels 提供器, 你需要安裝 Parallels Vagrant plug-in。它是免費的哦。
由于受到 Vagrant 限制 , Hyper-V 提供程序會忽略所有的網(wǎng)絡(luò)設(shè)置。
安裝 Homestead Vagrant Box
一旦將 VirtualBox / VMware 和 Vagrant 都安裝好之后,你可以在終端執(zhí)行下面的命令將 laravel/homestead
box 添加到 Vagrant 中安裝。你可能需要幾分鐘的時間來下載 box , 因為它取決于你的網(wǎng)絡(luò)連接速度:
vagrant box add laravel/homestead
如果這個命令失敗了,請確保你安裝的是最新版的 Vagrant。
安裝 Homestead
你可以通過克隆代碼來安裝 Homestead。 建議將代碼克隆到你的 "home" 目錄下的 Homestead
文件夾中, 這樣 Homestead box 就可以作為你的所有 Laravel 項目的主機(jī):
git clone https://github.com/laravel/homestead.git ~/Homestead
因為 Homestead 的 master 分支并不是穩(wěn)定的,你應(yīng)該使用打過標(biāo)簽的穩(wěn)定版本。你可以在 GitHub 發(fā)行頁: 上找到最新的穩(wěn)定版本:
cd ~/Homestead// 克隆期望的發(fā)行版本...git checkout v8.0.1
一旦克隆 Homestead 代碼完成以后,在 Homestead 目錄中使用 bash init.sh
命令來創(chuàng)建 Homestead.yaml
配置文件。 Homestead.yaml
文件將被放在 Homestead 目錄中:
// Mac / Linux...bash init.sh// Windows...init.bat
配置 Homestead
設(shè)置提供器
Homestead.yaml
文件中的 provider
參數(shù)決定了你用的是哪一個 Vagrant 提供器 : virtualbox
, vmware_fusion
, vmware_workstation
, parallels
以及 hyperv
。 你可以根據(jù)你的喜好來設(shè)置他們:
provider: virtualbox
配置共享文件夾
Homestead.yaml 文件的 folders 屬性里列出了所有與 Homestead 環(huán)境共享的文件夾。 這些文件夾中的文件如果發(fā)生變更,它們會保持本地機(jī)器與 Homestead 環(huán)境之間同步。 你可以根據(jù)需要配置多個共享文件夾:
folders: - map: ~/code to: /home/vagrant/code
如果你只創(chuàng)建幾個網(wǎng)站,這種通用的映射將運行的很好。但是,隨著網(wǎng)站數(shù)量的不斷增加,你可能會開始遇到性能問題。在包含大量文件的低性能機(jī)器或項目中,這個問題會非常明顯。如果遇到此問題,請嘗試將每個項目映射到自己的 Vagrant 文件夾:
folders: - map: ~/code/project1 to: /home/vagrant/code/project1 - map: ~/code/project2 to: /home/vagrant/code/project2
若要開啟 NFS, 你只需要在共享的文件夾配置中添加一個簡單的標(biāo)志:
folders: - map: ~/code to: /home/vagrant/code type: "nfs"
{note} 當(dāng)使用 NFS 時,你最好使用 vagrant-winnfsd 擴(kuò)展插件。 這個插件會替你處理 Homestead box 中的文件或目錄權(quán)限的問題。
你也可以通過在 options
中列出 Vagrant's 的共享文件夾 支持的任何選項:
folders: - map: ~/code to: /home/vagrant/code type: "rsync" options: rsync__args: ["--verbose", "--archive", "--delete", "-zz"] rsync__exclude: ["node_modules"]
配置 Nginx 站點
對 Nginx 不熟悉?沒關(guān)系。 sites
功能可以讓你在 Homestead 上輕松的映射一個 "域名" 到一個文件夾。在 Homestead.yaml
文件中包含了一個簡單的站點配置示例。同樣,您可以根據(jù)需要為您的 Homestead 環(huán)境添加很多的站點。Homestead 可以為你正在開發(fā)的每個 Laravel 項目提供一個方便的虛擬化環(huán)境:
sites: - map: homestead.test to: /home/vagrant/code/my-project/public
如果你在配置 Homestead 虛擬機(jī)后更改了 sites
選項,你需要再次運行 vagrant reload --provision
命令去更新虛擬機(jī)上的 Nginx 配置.
Hosts 文件
你必須將 Nginx 站點中所添加的域名添加到你本機(jī)的 hosts
文件中。 hosts
文件會將把訪問你 Homestead 站點的請求重定向到你的 Homestead 虛擬機(jī)上。在 Mac 和 Linux 中,該文件的地址在 /etc/hosts
,在 Windows 中位于 C:\Windows\System32\drivers\etc\hosts
。添加新站點的格式如下所示:
192.168.10.10 homestead.test
確保監(jiān)聽的 IP 地址是你在 Homestead.yaml
文件中所設(shè)置的。一旦你將將域名添加到 hosts
文件中并啟動 Vagrant Box 后,你就可以通過瀏覽器訪問該站點了:
http://homestead.test
啟動 Vagrant Box
根據(jù)你的需求編輯完成 Homestead.yaml
,在你的 Homestead 文件夾中運行 vagrant up
命令。Vagrant 將啟動虛擬機(jī)并自動配置你的共享文件夾和 Nginx 站點。
若要刪除虛擬機(jī),只需要運行 vagrant destroy --force
命令。
根據(jù)項目安裝
除了全局安裝 Homestead 并且在所有項目共享相同的 Homestead box 之外, 你可以為每個項目配置 Homestead 實例。 通過在項目下創(chuàng)建 Vagrantfile
,其他的項目成員只需運行 vagrant up
就能擁有相同的開發(fā)環(huán)境。
要將 Homestead 直接安裝到項目中,需要使用 Composer 命令:
composer require laravel/homestead --dev
Homestead 安裝之后, 使用 make
命令在項目根目錄中生成 Vagrantfile
和 Homestead.yaml
文件。 make
命令會自動配置 Homestead.yaml
文件中 sites
和 folders
指令。
Mac / Linux:
php vendor/bin/homestead make
Windows:
vendor\\bin\\homestead make
接下來,在命令行中運行 vagrant up
命令,然后在瀏覽器中訪問 http://homestead.test
。 記住,在訪問之前你仍然需要在 /etc/hosts
文件中添加你的 homestead.test
記錄或者其他的域名。
安裝 MariaDB
如果你喜歡使用 MariaDB 而不是 MySQL, 你可以在 Homestead.yaml
文件中增加一個 mariadb
的選項。這個選項會刪除 MySQL 并安裝 MariaDB。 MariaDB 只是作為 MySQL 的旁支替代品,因此你還是可以在應(yīng)用的數(shù)據(jù)庫配置中使用 mysql
數(shù)據(jù)庫驅(qū)動:
box: laravel/homestead ip: "192.168.10.10"memory: 2048cpus: 4provider: virtualbox mariadb: true
安裝 MongoDB
如果你需要安裝 MongoDB 社區(qū)版, 你可以在 Homestead.yaml
文件中將配置修改為:
mongodb: true
MongoDB 默認(rèn)的安裝方式會把數(shù)據(jù)庫的用戶名設(shè)置為 homestead
,默認(rèn)密碼為 secret
。
安裝 Elasticsearch
如果你要安裝 Elasticsearch,你可以在 Homestead.yaml
文件中添加 elasticsearch
選項并指定支持的版本號??梢詢H包含主版本,也可以是某個具體的版本號(major.minor.patch)。默認(rèn)安裝會創(chuàng)建一個名為 'homestead' 的集群。 注意永遠(yuǎn)不要賦予 Elasticsearch 超過操作系統(tǒng)一半的內(nèi)存,因此請保證你的 Homestead 至少分配了兩倍于 Elasticsearch 的內(nèi)存:
box: laravel/homestead ip: "192.168.10.10"memory: 4096cpus: 4provider: virtualbox elasticsearch: 6
{tip} 你可以查看 Elasticsearch documentation 文檔學(xué)習(xí)如何自定義你的配置。
安裝 Neo4j
Neo4j 是一個圖形數(shù)據(jù)庫管理系統(tǒng)。要安裝 Neo4j 社區(qū)版,需要更新 Homestead.yaml
配置項如下:
neo4j: true
默認(rèn)安裝的 Neo4j 會將數(shù)據(jù)庫用戶名設(shè)置為 homestead
,對應(yīng)的密碼設(shè)置為 secret
。 要查看 Neo4j 可以在瀏覽器中訪問 http://homestead.test:7474
。 Neo4j 對外提供了三個端口: 7687
(Bolt)、 7474
(HTTP)、 7473
(HTTPS) 用于從客戶端訪問。
別名
你可以通過編輯 Homestead 目錄下的 aliases
文件為 Homestead 虛擬機(jī)添加 Bash 別名:
alias c='clear'alias ..='cd ..'
更新完 aliases
文件后, 你應(yīng)該使用 vagrant reload --provision
命令重啟 Homestead 虛擬機(jī), 以確保新的別名在機(jī)器上可用。
日常使用
全局可用的 Homestead
有時你可能想在文件系統(tǒng)的任意路徑都能運行 vagrant up
命令啟動 Homestead 虛擬機(jī)。在 Mac / Linux 系統(tǒng)上可以在 Bash 配置文件( ~/.bash_profile
)中添加 Bash 函數(shù) 。在 Windows 上, 你可以添加「批處理」文件到 PATH
。這些腳本允許你在系統(tǒng)的任何位置運行 Vagrant 命令并自動將該命令指向 Homestead 的安裝路徑:
Mac / Linux
function homestead() { ( cd ~/Homestead && vagrant $* ) }
確保將該函數(shù)中的 ~/Homestead
路徑調(diào)整為實際的 Homestead 安裝路徑。這樣你就可以在系統(tǒng)的任意位置運行 homestead up
或 homestead ssh
等命令。
Windows
在系統(tǒng)的任意位置創(chuàng)建一個批處理文件 homestead.bat
,內(nèi)容如下:
@echo off set cwd=%cd% set homesteadVagrant=C:\Homestead cd /d %homesteadVagrant% && vagrant %* cd /d %cwd% set cwd= set homesteadVagrant=
一定要將腳本中 C:\Homestead
路徑調(diào)整為 Homestead 的實際安裝路徑。創(chuàng)建文件后,將文件路徑添加到 PATH
。然后你就可以在系統(tǒng)任意位置運行 homestead up
或 homestead ssh
等命令。
通過 SSH 連接
你可以通過在 Homestead 目錄下運行 vagrant ssh
終端命令以 SSH 的方式連接到虛擬機(jī)。
但是,你可能需要頻繁連接 Homestead 虛擬機(jī),因此請考慮將上面的「函數(shù)」添加到主機(jī)以便快速地以 SSH 方式連接到 Homestead 虛擬機(jī)。
連接數(shù)據(jù)庫
homestead
默認(rèn)已經(jīng)在虛擬機(jī)中為 MySQL 和 PostgreSQL 數(shù)據(jù)庫做好了配置。為了方便起見, Laravel 中的 .env
文件將框架配置成默認(rèn)使用此數(shù)據(jù)庫。
要從主機(jī)的數(shù)據(jù)庫客戶端連接到 MySQL 或 PostgreSQL ,應(yīng)該連接到 127.0.0.1
,端口 33060
(MySQL) 或 54320
(PostgreSQL)。用戶名和密碼分別是 homestead
/ secret
。
{note} 只有從本地連接 Hoemstead 的數(shù)據(jù)庫時才能使用這些非標(biāo)準(zhǔn)的端口。而 Laravel 在虛擬機(jī)中 運行時還是應(yīng)該使用默認(rèn)的 3306 和 5432 端口進(jìn)行數(shù)據(jù)庫連接。
數(shù)據(jù)庫備份
當(dāng)你的 Vagrant 盒子銷毀時,Homestead 能自動備份你的數(shù)據(jù)庫。為了利用這個功能,你必須使用 Vagrant 2.1.0 或者更高的版本?;蛘?,如果你使用一個舊版本的 Vagrant,你必須安裝 vagrant-triggers
插件。為了開啟自動數(shù)據(jù)庫備份,添加如下的行到你的 Homestead.yaml
文件:
backup: true
一旦配置了,當(dāng) vagrant destroy
命令被執(zhí)行時,Homestead 將導(dǎo)出你的數(shù)據(jù)庫到 mysql_backup
和 postgres_backup
目錄。如果你使用 每個項目安裝 方法,則可以在克隆的 Homestead 或者在你的項目根目錄中找到這些目錄。
添加額外的站點
一旦你的 Homestead 環(huán)境已配置并運行,你可以為你的 Laravel 應(yīng)用添加額外的 Nginx 站點。你可能希望在單個 Homestead 環(huán)境運行多個 Laravel 安裝。要添加額外的站點,到 Homestead.yaml
文件中添加站點:
sites: - map: homestead.test to: /home/vagrant/code/my-project/public - map: another.test to: /home/vagrant/code/another/public
如果 Vagrant 不能自動管理你的『hosts』文件,你可能還需要添加新的站點到該文件中:
192.168.10.10 homestead.test 192.168.10.10 another.test
一旦這個站點被添加,從你的 Homestead 目錄運行 vagrant reload --provision
命令。
站點類型
Homestead 支持多種類型的站點,允許你輕松運行不是基于 Laravel 的項目。例如,我們可以使用 symfony2
站點類型輕松地添加一個 Symfony 應(yīng)用到 Homestead:
sites: - map: symfony2.test to: /home/vagrant/code/my-symfony-project/web type: "symfony2"
可用的站點類型是:apache
,apigility
,expressive
,laravel
(默認(rèn)),proxy
,silverstripe
,statamic
,symfony2
,symfony4
,和 zf
。
站點參數(shù)
你可以通過 params
站點指令添加額外的 Nginx fastcgi_param
值到你的站點。例如,我們添加一個值為 BAR
的 Foo
參數(shù):
sites: - map: homestead.test to: /home/vagrant/code/my-project/public params: - key: FOO value: BAR
環(huán)境變量
你能通過添加如下的值到 Homestead.yaml
文件來設(shè)置全局環(huán)境變量:
variables: - key: APP_ENV value: local - key: FOO value: bar
更新 Homestead.yaml
文件之后,確保通過運行 vagrant reload --provision
命令重新配置機(jī)器。這個將更新所有安裝 的 PHP 版本的 PHP-FPM 配置并為 vagrant
用戶更新環(huán)境。
配置定時計劃
Laravel 提供了一種 計劃定時作業(yè) 的方式,通過安排單個 schedule:run
Artisan 命令去每分鐘運行。schedule:run
命令將檢查在你在 App\Console\Kernel
類中定義的計劃來決定運行哪個作業(yè)。
如果你想為一個 Homestead 站點的 schedule:run
命令運行起來,在定義站點時,你可以設(shè)置 schedule
選項為 true
:
sites: - map: homestead.test to: /home/vagrant/code/my-project/public schedule: true
站點的 Cron 作業(yè)將被定義在虛擬機(jī)的 /etc/cron.d
目錄中。
Configuring Mailhog
Mailhog 允許你輕松地捕獲外發(fā)的電子郵件并進(jìn)行檢查它,而實際上沒有將發(fā)送郵件給收件人。開始使用時,使用以下的郵件設(shè)置更新你的 .env
文件:
MAIL_DRIVER=smtp MAIL_HOST=localhost MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null
一旦 Mailhog 被配置,你可以在 http://localhost:8025
上訪問 Mailhog 控制面板。
配置 Minio
Minio 是一個開源的對象存儲服務(wù)器,具有與 Amazon S3 兼容的 API。要安裝 Minio,用以下的配置選項更新你的 Homestead.yaml
文件:
minio: true
默認(rèn)情況下,Minio 在端口 9600
上是可用的。你可以訪問 Minio 控制面板通過訪問 http://homestead:9600
。默認(rèn)訪問的鍵名是 homestead
,同時默認(rèn)的密鑰是 secretkey
。當(dāng)訪問 Minio 時,你應(yīng)當(dāng)總是使用 us-east-1
。
為了使用 Minio,你將需要在你的 config/filesystems.php
配置文件中調(diào)整 S3 磁盤配置。你將需要添加 use_path_style_endpoint
選項到磁盤配置,并將 url
鍵更改為 endpoint
:
's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'endpoint' => env('AWS_URL'), 'use_path_style_endpoint' => true ]
最后,確保你的 .env
文件有如下的選項:
AWS_ACCESS_KEY_ID=homestead AWS_SECRET_ACCESS_KEY=secretkey AWS_DEFAULT_REGION=us-east-1 AWS_URL=http://homestead:9600
為了配置存儲桶,在 Homestead 配置文件中添加一個 buckets
指令:
buckets: - name: your-bucket policy: public - name: your-private-bucket policy: none
支持的 policy
值包括:none
,download
,upload
和 public
。
端口
默認(rèn)情況下,如下的端口將轉(zhuǎn)發(fā)到你的 Homestead 環(huán)境:
- SSH:2222 -> 轉(zhuǎn)發(fā)到 22
- ngrok UI:4040 -> 轉(zhuǎn)發(fā)到 4040
- HTTP:8000 -> 轉(zhuǎn)發(fā)到 80
- HTTPS:44300 -> 轉(zhuǎn)發(fā)到 443
- MySQL:33060 -> 轉(zhuǎn)發(fā)到 3306
- PostgreSQL:54320 -> 轉(zhuǎn)發(fā)到 5432
- MongoDB:27017 -> 轉(zhuǎn)發(fā)到 27017
- Mailhog:8025 -> 轉(zhuǎn)發(fā)到 8025
- Minio:9600 -> 轉(zhuǎn)發(fā)到 9600
轉(zhuǎn)發(fā)額外的端口
如果你愿意,你可以轉(zhuǎn)發(fā)額外的端口到 Vagrant 盒子,同時也指定他們的協(xié)議:
ports: - send: 50000 to: 5000 - send: 7777 to: 777 protocol: udp
共享你的環(huán)境
有時你希望共享你當(dāng)前工作的內(nèi)容跟同事或客戶。Vagrant 有內(nèi)置的方法通過 vagrant share
去支持這個;然而,如果在 Homestead.yaml
文件中有多個站點配置,這個將不會工作。
為了解決這個問題,Homestead 包含它自己的 share
命令。開始時,SSH 通過 vagrant ssh
進(jìn)入你的 Homestead 機(jī)器并運行 share homestead.test
。這個將從你的 Homestead.yaml
配置文件中分享 homestead.test
站點。當(dāng)然,你可以將任何其它配置的站點替換為 homestead.test
:
share homestead.test
運行此命令之后,你將看到一個 Ngrok 屏幕出現(xiàn),其中包含了活動日志和共享站點的可訪問的 URLs。如果你想指定一個自定義的區(qū)域,子域,或者其它 Ngrok 運行時選項,你可以添加他們到你的 share
命令:
share homestead.test -region=eu -subdomain=laravel
{note} 記住,Vagrant 本質(zhì)上是不安全的,并且在運行
share
命令時將虛擬機(jī)顯露到互聯(lián)網(wǎng)。
多版本 PHP
Homestead 6 在同一個虛擬機(jī)上引入了對多個 PHP 版本的支持。你可以在你的 Homestead.yaml
文件中指定要用于給定站點的 PHP 版本??捎玫?PHP 版本是:『7.1』,『7.2』和『7.3』(默認(rèn)):
sites: - map: homestead.test to: /home/vagrant/code/my-project/public php: "7.1"
另外,你可以通過 CLI 使用任何支持的 PHP 版本:
php7.1 artisan list php7.2 artisan list php7.3 artisan list
Web 服務(wù)器
默認(rèn)情況下,Homestead 使用 Nginx web 服務(wù)器。然而,如果 apache
是指定的一個站點類型,它能安裝 Apache。同時兩個 web 服務(wù)器在同時被安裝,他們不能同時運行。flip
腳本命令可用來輕松處理 web 服務(wù)器之間的切換。flip
命令自動確定正在運行的 web 服務(wù)器,將其關(guān)閉。然后啟動其它服務(wù)器。要使用這個命令,SSH 進(jìn)入到你的 Homestead 機(jī)器并在終端運行命令:
flip
郵件
Homestead 包括 Postfix 郵件傳輸代理,默認(rèn)監(jiān)聽 1025
端口。因此,你可以指示你的應(yīng)用程序在 localhost
端口 1025
上使用 smtp
郵件驅(qū)動。所有發(fā)送的郵件將由 Postfix 處理并由 Mailhog 捕獲。要查看已發(fā)送的郵件,在 web 瀏覽器中打開 http://localhost:8025
。
網(wǎng)絡(luò)接口
Homestead.yaml
中的 networks
屬性為 Homestead 環(huán)境配置網(wǎng)絡(luò)接口。你可以根據(jù)需要配置多個接口:
networks: - type: "private_network" ip: "192.168.10.20"
要開啟一個 橋接 接口,配置 bridge
設(shè)置并改變 public_network
網(wǎng)絡(luò)類型:
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)"
擴(kuò)展 Homestead
你能在 Homestead 根目錄下使用 after.sh
腳本擴(kuò)展 Homestead。在這個文件中,你可以添加正確配置和自定義虛擬機(jī)所需的任何 shell 命令。
當(dāng)自定義 Homestead 時,Ubuntu 可能會詢問你是否要保留程序包的原始配置或者用一個新的配置文件覆蓋它。為了避免這種情況,你應(yīng)該在安裝軟件包時使用以下的命令,以避免覆蓋之前由 Homestead 編寫的任何配置:
sudo apt-get -y \ -o Dpkg::Options::="--force-confdef" \ -o Dpkg::Options::="--force-confold" \ install your-package
更新 Homestead
你能通過一些簡單的步驟更新 Homestead。首先,你應(yīng)當(dāng)使用 vagrant box update
命令更新 Vagrant 盒子:
vagrant box update
接下來,你需要去更新 Homestead 源代碼。如果你克隆過倉庫,你能在最初克隆倉庫的位置運行如下的命令:
git fetchgit checkout v8.0.1
這些命令從 GitHub 倉庫拉取最新的 Homestead 代碼,獲取最新的標(biāo)記,然后檢出最新的標(biāo)記版本。你能在 GitHub 版本頁面 找到最新穩(wěn)定的版本。
如果你通過你的項目的 composer.json
安裝 Homestead,你應(yīng)當(dāng)確保你的 composer.json
包含 "laravel/homestead": "^8"
并更新你的依賴項:
composer update
最后,你將需要銷毀和重新生成你的 Homestead 盒子去利用最新的 Vagrant 安裝。為了實現(xiàn)這個,在你的 Homestead 目錄運行如下的命令:
vagrant destroy vagrant up
提供特殊設(shè)置
VirtualBox
natdnshostresolver
默認(rèn)情況下,Homestead 將 natdnshostresolver
配置設(shè)置為 on
。這允許 Homestead 去使用你的主機(jī)操作系統(tǒng)的 DNS 設(shè)置。如果你不想覆蓋這個行為,添加如下的行到你的 Homestead.yaml
文件:
provider: virtualbox natdnshostresolver: off
Windows 上的符號鏈接
如果符號鏈接在你的 Windows 機(jī)器上無法正常工作,你可能需要添加以下的塊到 Vagrantfile
文件:
config.vm.provider "virtualbox" do |v| v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"] end