国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Homestead

Homestead


Laravel Homestead

簡(jiǎn)介

Laravel 致力于讓整個(gè) PHP 開(kāi)發(fā)體驗(yàn)變的更愉快,包括你的本地開(kāi)發(fā)環(huán)境。 Vagrant 提供了一種簡(jiǎn)單、優(yōu)雅的方式來(lái)管理和配置虛擬主機(jī)。

Laravel Homestead 是一個(gè)官方預(yù)封裝的 Vagrant box ,它為你提供了一個(gè)完美的開(kāi)發(fā)環(huán)境,你不需要在本地機(jī)器安裝 PHP、 web 服務(wù)器和其他的服務(wù)器軟件。你再也不用擔(dān)心會(huì)弄亂你的操作系統(tǒng)了!  Vagrant boxes 是一次性的。 如果出現(xiàn)問(wèn)題, 你可以在幾分鐘內(nèi)銷(xiāo)毀并重新創(chuàng)建 box !

Homestead 可以運(yùn)行在任何 Windows、 Mac、 或 Linux 系統(tǒng), 它包括了 Nginx web 服務(wù)器, PHP 7.3、 PHP 7.2、 PHP 7.1、 MySQL、PostgreSQL、Redis、 Memcached、 Node 以及你開(kāi)發(fā) Laravel 所需要的東西。

{note} 如果你使用的是 Windows, 你可能需要通過(guò) BIOS 來(lái)啟用硬件虛擬化 (VT-x)。如果你在 Hyper-V 系統(tǒng)上使用 UEFI 你可能還需要禁用 Hyper-V 以便訪問(wèn) 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è)置

第一步

在你啟動(dòng) Homestead 環(huán)境之前,你必須安裝  VirtualBox, VMWare, Parallels 或 Hyper-V 以及 Vagrant. 以上所有軟件均針對(duì)不同的操作系統(tǒng)提供了易于使用的可視化安裝包。

若要使用 VMware 提供器, 你需要購(gòu)買(mǎi) VMware Fusion / Workstation 和 VMware Vagrant plug-in. 雖然它不是免費(fèi)的,但是 VMware 可以提供更快的共享文件夾性能。

若要使用 Parallels 提供器, 你需要安裝 Parallels Vagrant plug-in。它是免費(fèi)的哦。

由于受到 Vagrant 限制 , Hyper-V 提供程序會(huì)忽略所有的網(wǎng)絡(luò)設(shè)置。

安裝 Homestead Vagrant Box

一旦將 VirtualBox / VMware 和 Vagrant 都安裝好之后,你可以在終端執(zhí)行下面的命令將 laravel/homestead box 添加到 Vagrant 中安裝。你可能需要幾分鐘的時(shí)間來(lái)下載 box , 因?yàn)樗Q于你的網(wǎng)絡(luò)連接速度:

vagrant box add laravel/homestead

如果這個(gè)命令失敗了,請(qǐng)確保你安裝的是最新版的 Vagrant。

安裝 Homestead

你可以通過(guò)克隆代碼來(lái)安裝 Homestead。 建議將代碼克隆到你的 "home" 目錄下的 Homestead 文件夾中, 這樣 Homestead box 就可以作為你的所有 Laravel 項(xiàng)目的主機(jī):

git clone https://github.com/laravel/homestead.git ~/Homestead

因?yàn)?Homestead 的 master 分支并不是穩(wěn)定的,你應(yīng)該使用打過(guò)標(biāo)簽的穩(wěn)定版本。你可以在 GitHub 發(fā)行頁(yè): 上找到最新的穩(wěn)定版本:

cd ~/Homestead// 克隆期望的發(fā)行版本...git checkout v8.0.1

一旦克隆 Homestead 代碼完成以后,在 Homestead 目錄中使用 bash init.sh 命令來(lái)創(chuàng)建  Homestead.yaml 配置文件。  Homestead.yaml 文件將被放在 Homestead 目錄中:

// Mac / Linux...bash init.sh// Windows...init.bat

配置 Homestead

設(shè)置提供器

Homestead.yaml 文件中的  provider 參數(shù)決定了你用的是哪一個(gè) Vagrant 提供器 : virtualbox, vmware_fusion, vmware_workstation, parallels 以及 hyperv。 你可以根據(jù)你的喜好來(lái)設(shè)置他們:

provider: virtualbox

配置共享文件夾

Homestead.yaml 文件的 folders 屬性里列出了所有與 Homestead 環(huán)境共享的文件夾。 這些文件夾中的文件如果發(fā)生變更,它們會(huì)保持本地機(jī)器與 Homestead 環(huán)境之間同步。 你可以根據(jù)需要配置多個(gè)共享文件夾:

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

如果你只創(chuàng)建幾個(gè)網(wǎng)站,這種通用的映射將運(yùn)行的很好。但是,隨著網(wǎng)站數(shù)量的不斷增加,你可能會(huì)開(kāi)始遇到性能問(wèn)題。在包含大量文件的低性能機(jī)器或項(xiàng)目中,這個(gè)問(wèn)題會(huì)非常明顯。如果遇到此問(wèn)題,請(qǐng)嘗試將每個(gè)項(xiàng)目映射到自己的 Vagrant 文件夾:

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

若要開(kāi)啟 NFS, 你只需要在共享的文件夾配置中添加一個(gè)簡(jiǎn)單的標(biāo)志:

folders:    - map: ~/code
      to: /home/vagrant/code
      type: "nfs"

{note} 當(dāng)使用 NFS 時(shí),你最好使用 vagrant-winnfsd 擴(kuò)展插件。 這個(gè)插件會(huì)替你處理 Homestead box 中的文件或目錄權(quán)限的問(wèn)題。

你也可以通過(guò)在 options 中列出 Vagrant's 的共享文件夾 支持的任何選項(xiàng):

folders:    - map: ~/code
      to: /home/vagrant/code
      type: "rsync"
      options:
          rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
          rsync__exclude: ["node_modules"]

配置 Nginx 站點(diǎn)

對(duì) Nginx 不熟悉?沒(méi)關(guān)系。 sites 功能可以讓你在 Homestead 上輕松的映射一個(gè) "域名" 到一個(gè)文件夾。在 Homestead.yaml 文件中包含了一個(gè)簡(jiǎn)單的站點(diǎn)配置示例。同樣,您可以根據(jù)需要為您的 Homestead 環(huán)境添加很多的站點(diǎn)。Homestead 可以為你正在開(kāi)發(fā)的每個(gè) Laravel 項(xiàng)目提供一個(gè)方便的虛擬化環(huán)境:

sites:    - map: homestead.test
      to: /home/vagrant/code/my-project/public

如果你在配置 Homestead 虛擬機(jī)后更改了 sites 選項(xiàng),你需要再次運(yùn)行 vagrant reload --provision 命令去更新虛擬機(jī)上的 Nginx 配置.

Hosts 文件

你必須將 Nginx 站點(diǎn)中所添加的域名添加到你本機(jī)的 hosts 文件中。 hosts 文件會(huì)將把訪問(wèn)你 Homestead 站點(diǎn)的請(qǐng)求重定向到你的 Homestead 虛擬機(jī)上。在 Mac 和 Linux 中,該文件的地址在 /etc/hosts,在 Windows 中位于 C:\Windows\System32\drivers\etc\hosts。添加新站點(diǎn)的格式如下所示:

192.168.10.10  homestead.test

確保監(jiān)聽(tīng)的 IP 地址是你在 Homestead.yaml 文件中所設(shè)置的。一旦你將將域名添加到 hosts 文件中并啟動(dòng) Vagrant Box 后,你就可以通過(guò)瀏覽器訪問(wèn)該站點(diǎn)了:

http://homestead.test

啟動(dòng) Vagrant Box

根據(jù)你的需求編輯完成 Homestead.yaml,在你的 Homestead 文件夾中運(yùn)行 vagrant up 命令。Vagrant 將啟動(dòng)虛擬機(jī)并自動(dòng)配置你的共享文件夾和 Nginx 站點(diǎn)。

若要?jiǎng)h除虛擬機(jī),只需要運(yùn)行 vagrant destroy --force 命令。

根據(jù)項(xiàng)目安裝

除了全局安裝 Homestead 并且在所有項(xiàng)目共享相同的 Homestead box 之外, 你可以為每個(gè)項(xiàng)目配置 Homestead 實(shí)例。 通過(guò)在項(xiàng)目下創(chuàng)建 Vagrantfile,其他的項(xiàng)目成員只需運(yùn)行 vagrant up 就能擁有相同的開(kāi)發(fā)環(huán)境。

要將 Homestead 直接安裝到項(xiàng)目中,需要使用 Composer 命令:

composer require laravel/homestead --dev

Homestead 安裝之后, 使用 make 命令在項(xiàng)目根目錄中生成 VagrantfileHomestead.yaml 文件。 make 命令會(huì)自動(dòng)配置 Homestead.yaml 文件中 sitesfolders 指令。

Mac / Linux:

php vendor/bin/homestead make

Windows:

vendor\\bin\\homestead make

接下來(lái),在命令行中運(yùn)行 vagrant up 命令,然后在瀏覽器中訪問(wèn) http://homestead.test 。 記住,在訪問(wèn)之前你仍然需要在 /etc/hosts 文件中添加你的 homestead.test 記錄或者其他的域名。

安裝 MariaDB

如果你喜歡使用 MariaDB 而不是 MySQL, 你可以在 Homestead.yaml 文件中增加一個(gè) mariadb 的選項(xiàng)。這個(gè)選項(xiàng)會(huì)刪除 MySQL 并安裝 MariaDB。 MariaDB 只是作為 MySQL 的旁支替代品,因此你還是可以在應(yīng)用的數(shù)據(jù)庫(kù)配置中使用 mysql 數(shù)據(jù)庫(kù)驅(qū)動(dòng):

box: laravel/homestead
ip: "192.168.10.10"memory: 2048cpus: 4provider: virtualbox
mariadb: true

安裝 MongoDB

如果你需要安裝 MongoDB 社區(qū)版, 你可以在 Homestead.yaml 文件中將配置修改為:

mongodb: true

MongoDB 默認(rèn)的安裝方式會(huì)把數(shù)據(jù)庫(kù)的用戶(hù)名設(shè)置為 homestead ,默認(rèn)密碼為 secret。

安裝 Elasticsearch

如果你要安裝 Elasticsearch,你可以在  Homestead.yaml 文件中添加  elasticsearch 選項(xiàng)并指定支持的版本號(hào)。可以?xún)H包含主版本,也可以是某個(gè)具體的版本號(hào)(major.minor.patch)。默認(rèn)安裝會(huì)創(chuàng)建一個(gè)名為 'homestead' 的集群。 注意永遠(yuǎn)不要賦予 Elasticsearch 超過(guò)操作系統(tǒng)一半的內(nèi)存,因此請(qǐng)保證你的 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 是一個(gè)圖形數(shù)據(jù)庫(kù)管理系統(tǒng)。要安裝 Neo4j 社區(qū)版,需要更新 Homestead.yaml 配置項(xiàng)如下:

neo4j: true

默認(rèn)安裝的 Neo4j 會(huì)將數(shù)據(jù)庫(kù)用戶(hù)名設(shè)置為 homestead ,對(duì)應(yīng)的密碼設(shè)置為 secret 。 要查看 Neo4j 可以在瀏覽器中訪問(wèn) http://homestead.test:7474 。 Neo4j 對(duì)外提供了三個(gè)端口: 7687 (Bolt)、 7474 (HTTP)、 7473 (HTTPS) 用于從客戶(hù)端訪問(wèn)。

別名

你可以通過(guò)編輯 Homestead 目錄下的 aliases 文件為 Homestead 虛擬機(jī)添加 Bash 別名:

alias c='clear'alias ..='cd ..'

更新完 aliases 文件后, 你應(yīng)該使用 vagrant reload --provision 命令重啟 Homestead 虛擬機(jī), 以確保新的別名在機(jī)器上可用。

日常使用

全局可用的 Homestead

有時(shí)你可能想在文件系統(tǒng)的任意路徑都能運(yùn)行 vagrant up 命令啟動(dòng) Homestead 虛擬機(jī)。在 Mac / Linux 系統(tǒng)上可以在 Bash 配置文件( ~/.bash_profile )中添加 Bash 函數(shù) 。在 Windows 上, 你可以添加「批處理」文件到 PATH 。這些腳本允許你在系統(tǒng)的任何位置運(yùn)行 Vagrant 命令并自動(dòng)將該命令指向 Homestead 的安裝路徑:

Mac / Linux

function homestead() { 
   ( cd ~/Homestead && vagrant $* )
   }

確保將該函數(shù)中的 ~/Homestead 路徑調(diào)整為實(shí)際的 Homestead 安裝路徑。這樣你就可以在系統(tǒng)的任意位置運(yùn)行 homestead uphomestead ssh 等命令。

Windows

在系統(tǒng)的任意位置創(chuàng)建一個(gè)批處理文件 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 的實(shí)際安裝路徑。創(chuàng)建文件后,將文件路徑添加到 PATH 。然后你就可以在系統(tǒng)任意位置運(yùn)行 homestead uphomestead ssh 等命令。

通過(guò) SSH 連接

你可以通過(guò)在 Homestead 目錄下運(yùn)行 vagrant ssh 終端命令以 SSH 的方式連接到虛擬機(jī)。

但是,你可能需要頻繁連接 Homestead 虛擬機(jī),因此請(qǐng)考慮將上面的「函數(shù)」添加到主機(jī)以便快速地以 SSH 方式連接到 Homestead 虛擬機(jī)。

連接數(shù)據(jù)庫(kù)

homestead 默認(rèn)已經(jīng)在虛擬機(jī)中為 MySQL 和 PostgreSQL 數(shù)據(jù)庫(kù)做好了配置。為了方便起見(jiàn), Laravel 中的 .env 文件將框架配置成默認(rèn)使用此數(shù)據(jù)庫(kù)。

要從主機(jī)的數(shù)據(jù)庫(kù)客戶(hù)端連接到 MySQL 或 PostgreSQL ,應(yīng)該連接到 127.0.0.1 ,端口  33060 (MySQL) 或 54320 (PostgreSQL)。用戶(hù)名和密碼分別是 homestead / secret

{note} 只有從本地連接 Hoemstead 的數(shù)據(jù)庫(kù)時(shí)才能使用這些非標(biāo)準(zhǔn)的端口。而 Laravel 在虛擬機(jī)中 運(yùn)行時(shí)還是應(yīng)該使用默認(rèn)的 3306 和 5432 端口進(jìn)行數(shù)據(jù)庫(kù)連接。

數(shù)據(jù)庫(kù)備份

當(dāng)你的 Vagrant 盒子銷(xiāo)毀時(shí),Homestead 能自動(dòng)備份你的數(shù)據(jù)庫(kù)。為了利用這個(gè)功能,你必須使用 Vagrant 2.1.0 或者更高的版本。或者,如果你使用一個(gè)舊版本的 Vagrant,你必須安裝 vagrant-triggers 插件。為了開(kāi)啟自動(dòng)數(shù)據(jù)庫(kù)備份,添加如下的行到你的 Homestead.yaml 文件:

backup: true

一旦配置了,當(dāng) vagrant destroy 命令被執(zhí)行時(shí),Homestead 將導(dǎo)出你的數(shù)據(jù)庫(kù)到 mysql_backuppostgres_backup 目錄。如果你使用 每個(gè)項(xiàng)目安裝 方法,則可以在克隆的 Homestead 或者在你的項(xiàng)目根目錄中找到這些目錄。

添加額外的站點(diǎn)

一旦你的 Homestead 環(huán)境已配置并運(yùn)行,你可以為你的 Laravel 應(yīng)用添加額外的 Nginx 站點(diǎn)。你可能希望在單個(gè) Homestead 環(huán)境運(yùn)行多個(gè) Laravel 安裝。要添加額外的站點(diǎn),到 Homestead.yaml 文件中添加站點(diǎn):

sites:
    - map: homestead.test
      to: /home/vagrant/code/my-project/public
    - map: another.test
      to: /home/vagrant/code/another/public

如果 Vagrant 不能自動(dòng)管理你的『hosts』文件,你可能還需要添加新的站點(diǎn)到該文件中:

192.168.10.10  homestead.test
192.168.10.10  another.test

一旦這個(gè)站點(diǎn)被添加,從你的 Homestead 目錄運(yùn)行 vagrant reload --provision 命令。

站點(diǎn)類(lèi)型

Homestead 支持多種類(lèi)型的站點(diǎn),允許你輕松運(yùn)行不是基于 Laravel 的項(xiàng)目。例如,我們可以使用 symfony2 站點(diǎn)類(lèi)型輕松地添加一個(gè) Symfony 應(yīng)用到 Homestead:

sites:
    - map: symfony2.test
      to: /home/vagrant/code/my-symfony-project/web
      type: "symfony2"

可用的站點(diǎn)類(lèi)型是:apache,apigility,expressive,laravel(默認(rèn)),proxy,silverstripe,statamic,symfony2symfony4,和 zf。

站點(diǎn)參數(shù)

你可以通過(guò) params 站點(diǎn)指令添加額外的 Nginx fastcgi_param 值到你的站點(diǎn)。例如,我們添加一個(gè)值為 BARFoo 參數(shù):

sites:
    - map: homestead.test
      to: /home/vagrant/code/my-project/public
      params:
          - key: FOO
            value: BAR

環(huán)境變量

你能通過(guò)添加如下的值到 Homestead.yaml 文件來(lái)設(shè)置全局環(huán)境變量:

variables:
    - key: APP_ENV
      value: local
    - key: FOO
      value: bar

更新 Homestead.yaml 文件之后,確保通過(guò)運(yùn)行 vagrant reload --provision 命令重新配置機(jī)器。這個(gè)將更新所有安裝 的 PHP 版本的 PHP-FPM 配置并為 vagrant 用戶(hù)更新環(huán)境。

配置定時(shí)計(jì)劃

Laravel 提供了一種 計(jì)劃定時(shí)作業(yè) 的方式,通過(guò)安排單個(gè) schedule:run Artisan 命令去每分鐘運(yùn)行。schedule:run 命令將檢查在你在 App\Console\Kernel 類(lèi)中定義的計(jì)劃來(lái)決定運(yùn)行哪個(gè)作業(yè)。

如果你想為一個(gè) Homestead 站點(diǎn)的 schedule:run 命令運(yùn)行起來(lái),在定義站點(diǎn)時(shí),你可以設(shè)置 schedule 選項(xiàng)為 true

sites:
    - map: homestead.test
      to: /home/vagrant/code/my-project/public
      schedule: true

站點(diǎn)的 Cron 作業(yè)將被定義在虛擬機(jī)的 /etc/cron.d 目錄中。

Configuring Mailhog

Mailhog 允許你輕松地捕獲外發(fā)的電子郵件并進(jìn)行檢查它,而實(shí)際上沒(méi)有將發(fā)送郵件給收件人。開(kāi)始使用時(shí),使用以下的郵件設(shè)置更新你的 .env 文件:

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

一旦 Mailhog 被配置,你可以在 http://localhost:8025 上訪問(wèn) Mailhog 控制面板。

配置 Minio

Minio 是一個(gè)開(kāi)源的對(duì)象存儲(chǔ)服務(wù)器,具有與 Amazon S3 兼容的 API。要安裝 Minio,用以下的配置選項(xiàng)更新你的 Homestead.yaml 文件:

minio: true

默認(rèn)情況下,Minio 在端口 9600 上是可用的。你可以訪問(wèn) Minio 控制面板通過(guò)訪問(wèn) http://homestead:9600。默認(rèn)訪問(wèn)的鍵名是 homestead,同時(shí)默認(rèn)的密鑰是 secretkey。當(dāng)訪問(wèn) Minio 時(shí),你應(yīng)當(dāng)總是使用 us-east-1。

為了使用 Minio,你將需要在你的 config/filesystems.php 配置文件中調(diào)整 S3 磁盤(pán)配置。你將需要添加 use_path_style_endpoint 選項(xiàng)到磁盤(pán)配置,并將 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 文件有如下的選項(xiàng):

AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1
AWS_URL=http://homestead:9600

為了配置存儲(chǔ)桶,在 Homestead 配置文件中添加一個(gè) buckets 指令:

buckets:
    - name: your-bucket
      policy: public
    - name: your-private-bucket
      policy: none

支持的 policy 值包括:none,download,uploadpublic。

端口

默認(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 盒子,同時(shí)也指定他們的協(xié)議:

ports:
    - send: 50000
      to: 5000
    - send: 7777
      to: 777
      protocol: udp

共享你的環(huán)境

有時(shí)你希望共享你當(dāng)前工作的內(nèi)容跟同事或客戶(hù)。Vagrant 有內(nèi)置的方法通過(guò) vagrant share 去支持這個(gè);然而,如果在 Homestead.yaml 文件中有多個(gè)站點(diǎn)配置,這個(gè)將不會(huì)工作。

為了解決這個(gè)問(wèn)題,Homestead 包含它自己的 share 命令。開(kāi)始時(shí),SSH 通過(guò) vagrant ssh 進(jìn)入你的 Homestead 機(jī)器并運(yùn)行 share homestead.test。這個(gè)將從你的 Homestead.yaml 配置文件中分享 homestead.test 站點(diǎn)。當(dāng)然,你可以將任何其它配置的站點(diǎn)替換為 homestead.test

share homestead.test

運(yùn)行此命令之后,你將看到一個(gè) Ngrok 屏幕出現(xiàn),其中包含了活動(dòng)日志和共享站點(diǎn)的可訪問(wèn)的 URLs。如果你想指定一個(gè)自定義的區(qū)域,子域,或者其它 Ngrok 運(yùn)行時(shí)選項(xiàng),你可以添加他們到你的 share 命令:

share homestead.test -region=eu -subdomain=laravel

{note} 記住,Vagrant 本質(zhì)上是不安全的,并且在運(yùn)行 share 命令時(shí)將虛擬機(jī)顯露到互聯(lián)網(wǎng)。

多版本 PHP

Homestead 6 在同一個(gè)虛擬機(jī)上引入了對(duì)多個(gè) PHP 版本的支持。你可以在你的 Homestead.yaml 文件中指定要用于給定站點(diǎn)的 PHP 版本。可用的 PHP 版本是:『7.1』,『7.2』和『7.3』(默認(rèn)):

sites:
    - map: homestead.test
      to: /home/vagrant/code/my-project/public
      php: "7.1"

另外,你可以通過(guò) CLI 使用任何支持的 PHP 版本:

php7.1 artisan list
php7.2 artisan list
php7.3 artisan list

Web 服務(wù)器

默認(rèn)情況下,Homestead 使用 Nginx web 服務(wù)器。然而,如果 apache 是指定的一個(gè)站點(diǎn)類(lèi)型,它能安裝 Apache。同時(shí)兩個(gè) web 服務(wù)器在同時(shí)被安裝,他們不能同時(shí)運(yùn)行。flip 腳本命令可用來(lái)輕松處理 web 服務(wù)器之間的切換。flip 命令自動(dòng)確定正在運(yùn)行的 web 服務(wù)器,將其關(guān)閉。然后啟動(dòng)其它服務(wù)器。要使用這個(gè)命令,SSH 進(jìn)入到你的 Homestead 機(jī)器并在終端運(yùn)行命令:

flip

郵件

Homestead 包括 Postfix 郵件傳輸代理,默認(rèn)監(jiān)聽(tīng) 1025 端口。因此,你可以指示你的應(yīng)用程序在 localhost 端口 1025 上使用 smtp 郵件驅(qū)動(dòng)。所有發(fā)送的郵件將由 Postfix 處理并由 Mailhog 捕獲。要查看已發(fā)送的郵件,在 web 瀏覽器中打開(kāi) http://localhost:8025。

網(wǎng)絡(luò)接口

Homestead.yaml 中的 networks 屬性為 Homestead 環(huán)境配置網(wǎng)絡(luò)接口。你可以根據(jù)需要配置多個(gè)接口:

networks:
    - type: "private_network"
      ip: "192.168.10.20"

要開(kāi)啟一個(gè) 橋接 接口,配置 bridge 設(shè)置并改變 public_network 網(wǎng)絡(luò)類(lèi)型:

networks:
    - type: "public_network"
      ip: "192.168.10.20"
      bridge: "en1: Wi-Fi (AirPort)"

要開(kāi)啟 DHCP,僅從你的配置中移除 ip 選項(xiàng):

networks:
    - type: "public_network"
      bridge: "en1: Wi-Fi (AirPort)"

擴(kuò)展 Homestead

你能在 Homestead 根目錄下使用 after.sh 腳本擴(kuò)展 Homestead。在這個(gè)文件中,你可以添加正確配置和自定義虛擬機(jī)所需的任何 shell 命令。

當(dāng)自定義 Homestead 時(shí),Ubuntu 可能會(huì)詢(xún)問(wèn)你是否要保留程序包的原始配置或者用一個(gè)新的配置文件覆蓋它。為了避免這種情況,你應(yīng)該在安裝軟件包時(shí)使用以下的命令,以避免覆蓋之前由 Homestead 編寫(xiě)的任何配置:

sudo apt-get -y \
    -o Dpkg::Options::="--force-confdef" \
    -o Dpkg::Options::="--force-confold" \    
    install your-package

更新 Homestead

你能通過(guò)一些簡(jiǎn)單的步驟更新 Homestead。首先,你應(yīng)當(dāng)使用 vagrant box update 命令更新 Vagrant 盒子:

vagrant box update

接下來(lái),你需要去更新 Homestead 源代碼。如果你克隆過(guò)倉(cāng)庫(kù),你能在最初克隆倉(cāng)庫(kù)的位置運(yùn)行如下的命令:

git fetchgit checkout v8.0.1

這些命令從 GitHub 倉(cāng)庫(kù)拉取最新的 Homestead 代碼,獲取最新的標(biāo)記,然后檢出最新的標(biāo)記版本。你能在 GitHub 版本頁(yè)面 找到最新穩(wěn)定的版本。

如果你通過(guò)你的項(xiàng)目的 composer.json 安裝 Homestead,你應(yīng)當(dāng)確保你的 composer.json 包含 "laravel/homestead": "^8" 并更新你的依賴(lài)項(xiàng):

composer update

最后,你將需要銷(xiāo)毀和重新生成你的 Homestead 盒子去利用最新的 Vagrant 安裝。為了實(shí)現(xiàn)這個(gè),在你的 Homestead 目錄運(yùn)行如下的命令:

vagrant destroy
vagrant up

提供特殊設(shè)置

VirtualBox

natdnshostresolver

默認(rèn)情況下,Homestead 將 natdnshostresolver 配置設(shè)置為 on。這允許 Homestead 去使用你的主機(jī)操作系統(tǒng)的 DNS 設(shè)置。如果你不想覆蓋這個(gè)行為,添加如下的行到你的 Homestead.yaml 文件:

provider: virtualbox
natdnshostresolver: off

Windows 上的符號(hào)鏈接

如果符號(hào)鏈接在你的 Windows 機(jī)器上無(wú)法正常工作,你可能需要添加以下的塊到 Vagrantfile 文件:

config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
    end
本文章首發(fā)在 LearnKu.com 網(wǎng)站上。