鍍金池/ 教程/ PHP/ Laravel Homestead
Laravel Cashier
Eloquent ORM
HTTP 響應(yīng)
發(fā)行說明
擴(kuò)展包開發(fā)
HTTP 控制器
事件
擴(kuò)展框架
Contracts
開發(fā)
配置
表單驗(yàn)證
錯(cuò)誤與日志
Hashing
貢獻(xiàn)指南
郵件
Session
遷移與數(shù)據(jù)填充
查詢構(gòu)造器
Redis
升級(jí)向?qū)?/span>
概覽
緩存
服務(wù)提供者
Envoy 任務(wù)執(zhí)行器
隊(duì)列
單元測(cè)試
服務(wù)容器
文件系統(tǒng) / 云存儲(chǔ)
認(rèn)證
請(qǐng)求的生命周期
加密
模板
視圖 (View)
Laravel Homestead
Laravel 安裝指南
介紹
Command Bus
分頁
輔助方法
應(yīng)用程序結(jié)構(gòu)
HTTP 路由
HTTP 請(qǐng)求
基本用法
本地化
HTTP 中間件
結(jié)構(gòu)生成器
Facades
Laravel Elixir

Laravel Homestead

介紹

Laravel 致力于讓 PHP 開發(fā)體驗(yàn)更愉快,也包含你的本地開發(fā)環(huán)境。Vagrant 提供了一個(gè)簡(jiǎn)單、優(yōu)雅的方式來管理與供應(yīng)虛擬機(jī)。

Laravel Homestead 是一個(gè)官方預(yù)載的 Vagrant「封裝包」,提供你一個(gè)美好的開發(fā)環(huán)境,你不需要在你的本機(jī)端安裝 PHP、HHVM、網(wǎng)頁服務(wù)器或任何服務(wù)器軟件。不用擔(dān)心搞亂你的系統(tǒng)!Vagrant 封裝包可以搞定一切。如果有什么地方出現(xiàn)故障,你可以在幾分鐘內(nèi)快速的銷毀并重建虛擬機(jī)。

Homestead 可以在任何 Windows、Mac 或 Linux 上面運(yùn)行,里面包含了 Nginx 網(wǎng)頁服務(wù)器、PHP 5.6、MySQL、Postgres、Redis、Memcached 還有所有你要開發(fā)精彩的 Laravel 應(yīng)用程序所需的軟件。

附注: 如果您是 Windows 的用戶,您可能需要啟用硬件虛擬化(VT-x)。通常需要通過 BIOS 來啟用它。

Homestead 目前是構(gòu)建且測(cè)試于 Vagrant 1.7 版本。

內(nèi)置軟件

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • Node (With Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Fabric + HipChat Extension
  • Blackfire Profiler

安裝與配置

安裝 VirtualBox / VMWare 與 Vagrant

在啟動(dòng)你的 Homestead 環(huán)境之前,你必須先安裝 VirtualBoxVagrant. 兩套軟件在各平臺(tái)都有提供易用的可視化安裝程序。

VMware

除了 VirtualBox 之外, Homestead 也支持 VMware. 如果使用 VMware 作為 provider, 你需要購買 VMware Fusion / Desktop 以及 VMware Vagrant plug-in. VMware 提供了更快、性能更好的共享文件夾。

增加 Vagrant 封裝包

當(dāng) VirtualBox / VMware 和 Vagrant 安裝完成后,你可以在終端機(jī)以下列命令將 'laravel/homestead' 封裝包安裝進(jìn)你的 Vagrant 安裝程序中。下載封裝包會(huì)花你一點(diǎn)時(shí)間,時(shí)間長(zhǎng)短將依據(jù)你的網(wǎng)絡(luò)速度決定:

vagrant box add laravel/homestead

如果這個(gè)命令失敗了, 你可能安裝的是一個(gè)老版本的 Vagrant 需要指定一個(gè)完整的 URL:

vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

安裝 Homestead

手動(dòng)通過 Git 安裝(本地端沒有 PHP)

如果你不希望在你的本機(jī)上安裝 PHP ,你可以簡(jiǎn)單地通過手動(dòng)復(fù)制資源庫的方式來安裝 Homestead。將資源庫復(fù)制至你的 "home" 目錄中的 Homestead 文件夾,如此一來 Homestead 封裝包將能提供主機(jī)服務(wù)給你所有的 Laravel(及 PHP)應(yīng)用:

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

一旦你安裝完 Homestead CLI 工具,即可執(zhí)行 bash init.sh 命令來創(chuàng)建 Homestead.yaml 配置文件:

bash init.sh

Homestead.yaml 文件,將會(huì)被放置在你的~/.homestead 目錄中。

通過 Composer + PHP 工具

一旦封裝包已經(jīng)安裝進(jìn)你的 Vagrant 安裝程序,你就可以準(zhǔn)備通過 Composer global 命令來安裝 Homestead CLI 工具:

composer global require "laravel/homestead=~2.0"

請(qǐng)務(wù)必確認(rèn) homestead 有被放置在目錄 ~/.composer/vendor/bin 之中,如此一來你才能在終端機(jī)中順利執(zhí)行 homestead 命令。

一旦你安裝完 Homestead CLI 工具,即可執(zhí)行 init 命令來創(chuàng)建 Homestead.yaml 配置文件:

homestead init

Homestead.yaml 將會(huì)被放置在你的 ~/.homestead 文件夾中。如果你是使用 Mac 或 Linux,你可以直接在終端機(jī)執(zhí)行 homestead edit 命令來編輯 Homestead.yaml :

homestead edit

配置你的 Provider

Homestead.yaml 文件中的 provider 鍵表明需要使用的 Vagrant prodiver:virtualbox或者vmware_fusion ,你可以根據(jù)自己的喜好設(shè)定 provider 。

provider: virtualbox

配置你的 SSH 密鑰

然后你需要編輯 Homestead.yaml??梢栽谖募信渲媚愕?SSH 公開密鑰,以及主要機(jī)器與 Homestead 虛擬機(jī)之間的共享目錄。

如果沒有 SSH 密鑰的話, 在 Mac 和 Linux 下,你可以利用下面的命令來創(chuàng)建一個(gè) SSH 密鑰組:

ssh-keygen -t rsa -C "you@homestead"

在 Windows 下,你需要安裝 Git 并且使用包含在 Git 里的 Git Bash 來執(zhí)行上述的命令。另外你也可以使用 PuTTYPuTTYgen

一旦你創(chuàng)建了一個(gè) SSH 密鑰,記得在你的 Homestead.yaml 文件中的 authorize屬性指明密鑰路徑。

配置你的共享文件夾

Homestead.yaml 文件中的 folders 屬性列出了所有你想在 Homestead 環(huán)境共享的文件夾列表。這些文件夾中的文件若有變動(dòng),他們將會(huì)同步在你的本機(jī)與 Homestead 環(huán)境里。你可以將你需要的共享文件夾都配置進(jìn)去。

如果要開啟 NFS,只需要在 folders 中加入一個(gè)標(biāo)識(shí):

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

配置你的 Nginx 站點(diǎn)

對(duì) Nginx 不熟悉?沒關(guān)系。sites 屬性允許你簡(jiǎn)單的對(duì)應(yīng)一個(gè) 域名到一個(gè) homestead 環(huán)境中的目錄。一個(gè)例子的站點(diǎn)被配置在 Homestead.yaml文件中。同樣的,你可以加任何你需要的站點(diǎn)到你的 Homestead 環(huán)境中。Homestead 可以為你每個(gè)進(jìn)行中的 Laravel 應(yīng)用提供方便的虛擬化環(huán)境。

你可以通過配置 hhvm 屬性為 true 來讓虛擬站點(diǎn)支持 HHVM:

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
      hhvm: true

Bash Aliases

如果要增加 Bash aliases 到你的 Homestead 封裝包中,只要將內(nèi)容添加到 ~/.homestead 目錄最上層的 aliases 文件中即可。

啟動(dòng) Vagrant 封裝包

當(dāng)你根據(jù)你的喜好編輯完 Homestead.yaml 后,在終端機(jī)里進(jìn)入你的 Homestead 文件夾并執(zhí)行 homestead up 命令。

Vagrant 會(huì)將虛擬機(jī)開機(jī),并且自動(dòng)配置你的共享目錄和 Nginx 站點(diǎn)。如果要移除虛擬機(jī),可以使用 vagrant destroy --force 命令。

為了你的 Nginx 站點(diǎn),別忘記在你的機(jī)器的 hosts 文件將「域名」加進(jìn)去。hosts 文件會(huì)將你的本地域名的站點(diǎn)請(qǐng)求指向你的 Homestead 環(huán)境中。在 Mac 和 Linux,該文件放在 /etc/hosts。在 Windows 環(huán)境中,它被放置在 C:\Windows\System32\drivers\etc\hosts。你要加進(jìn)去的內(nèi)容類似如下:

192.168.10.10  homestead.app

務(wù)必確認(rèn) IP 地址與你的 Homestead.yaml 文件中的相同。一旦你將域名加進(jìn)你的 hosts 文件中,你就可以通過網(wǎng)頁瀏覽器訪問到你的站點(diǎn)。

http://homestead.app

繼續(xù)讀下去,你會(huì)學(xué)到如何連接到數(shù)據(jù)庫!

常見用法

通過 SSH 連接

要通過 SSH 連接上您的 Homestead 環(huán)境,在終端機(jī)里進(jìn)入你的 Homestead 目錄并執(zhí)行 vagrant ssh 命令。

因?yàn)槟憧赡軙?huì)經(jīng)常需要通過 SSH 進(jìn)入你的 Homestead 虛擬機(jī),可以考慮在你的主要機(jī)器上創(chuàng)建一個(gè)"別名":

alias vm="ssh vagrant@127.0.0.1 -p 2222"

一旦你創(chuàng)建了這個(gè)別名,無論你在主要機(jī)器的哪個(gè)目錄,都可以簡(jiǎn)單地使用 "vm" 命令來通過 SSH 進(jìn)入你的 Homestead 虛擬機(jī)。

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

Homestead 封裝包中,已經(jīng)預(yù)了 MySQL 與 Postgres 兩種數(shù)據(jù)庫。為了更簡(jiǎn)便,Laravel 的 local 數(shù)據(jù)庫配置已經(jīng)默認(rèn)將其配置完成。

如果想要從本機(jī)上通過 Navicat 或者 Sequel Pro 連接 MySQL 或者 Postgres 數(shù)據(jù)庫,你可以連接 127.0.0.1的端口 33060 (MySQL) 或 54320 (Postgres)。而帳號(hào)密碼分別是 homestead / secret

附注: 從本機(jī)端你應(yīng)該只能使用這些非標(biāo)準(zhǔn)的連接端口來連接數(shù)據(jù)庫。因?yàn)楫?dāng) Laravel 運(yùn)行在虛擬機(jī)時(shí),在 Laravel 的數(shù)據(jù)庫配置文件中依然是配置使用默認(rèn)的 3306 及 5432 連接端口。

增加更多的站點(diǎn)

在 Homestead 環(huán)境上架且運(yùn)行后,你可能會(huì)需要為 Laravel 應(yīng)用程序增加更多的 Nginx 站點(diǎn)。你可以在單一個(gè) Homestead 環(huán)境中運(yùn)行非常多 Laravel 安裝程序。有兩種方式可以達(dá)成:第一種,在 Homestead.yaml 文件中增加站點(diǎn)然后執(zhí)行 homestead provision 或者 vagrant provision。

另外,也可以使用存放在 Homestead 環(huán)境中的 serve 命令文件。要使用 serve 命令文件,請(qǐng)先 SSH 進(jìn)入 Homestead 環(huán)境中,并執(zhí)行下列命令:

serve domain.app /home/vagrant/Code/path/to/public/directory
附注: 在執(zhí)行 serve 命令過后,別忘記將新的站點(diǎn)加進(jìn)本機(jī)的 hosts 文件中。

連接端口

以下的端口將會(huì)被轉(zhuǎn)發(fā)至 Homestead 環(huán)境:

  • SSH: 2222 → Forwards To 22
  • HTTP: 8000 → Forwards To 80
  • MySQL: 33060 → Forwards To 3306
  • Postgres: 54320 → Forwards To 5432

增加額外端口

你也可以自定義轉(zhuǎn)發(fā)額外的端口至 Vagrant box,只需要指定協(xié)議:

ports:
    - send: 93000
      to: 9300
    - send: 7777
      to: 777
      protocol: udp

Blackfire Profiler

Blackfire Profiler 是由 SensioLabs 創(chuàng)建的一個(gè)分析工具,它會(huì)自動(dòng)的收集代碼執(zhí)行期間的相關(guān)數(shù)據(jù),比如 RAM, CPU time, 和 disk I/O. 如果你使用 Homestead ,那么使用這個(gè)分析工具會(huì)變得非常簡(jiǎn)單。

blackfire 所需的包已經(jīng)安裝在 Homestead box 中,你只需要在 Homestead.yaml 文件中設(shè)置 Server ID 和 token :

blackfire:
    - id: your-id
      token: your-token

當(dāng)你設(shè)定完 Blackfire 的憑證信息,使用 homestead provision 或者 vagrant provision 令配置生效。當(dāng)然,你也需要通過閱讀Blackfire 文檔 來學(xué)習(xí)如何在你的瀏覽器中安裝 Blackfire 擴(kuò)展。

上一篇:配置下一篇:分頁