如何使用 Homestead 快速建立 Laravel 開發環境


有在開發php的programmer應該都有觀察到這兩年來php的framework市場基本上已經都被Laravel拿下了,雖然過往在不同階段都有呼聲很高的framework出現, 但都不曾以一面倒的態勢讓單一framework獨大 , 但 Laravel 這次的確是整碗捧去了, 這點從community在github php 的 contribution 有非常高的比例會附帶 laravel 的安裝方式及跟 Laravel一致的 facade 介面就可看出端倪.

相較於一些比較 lightweight 的 php framework , Laravel算一套比較進階的 framework , 並不建議才剛學php的人馬上就來使用, 不過對已經非常熟悉語言概念並且精通其他某種語言的人則不在此限, Laravel 官方為了提供開發者一個舒適方便及優雅(elegant way)的開發環境, 將 Laravel 與 web server 還有許多web開發常需要用到的軟體/服務,包成了一個 VM 以 vagrant box的方式提供給開發者使用, 這個專案叫做 Homestead , 本文將介紹如何用 Homestead 建立自己的開發環境並提供一些學習資訊 , 如果你習慣看英文也可以直接看 Homestead 的教學.

正文開始:

Homestead 基本上包含了下列套件:

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

所以裡面預設以Nginx為Web Server, 以 php5-fpm 為 fast-cgi 做 web server 跟 php 的 gateway , 這也是目前較推薦的配置方式 , 另外 DB 部分有 MySQL跟 Postgre , Queue 則內建 Beanstalkd , Cache 有 Redis 跟  Memcached , 當然前端必備的 Grunt 跟 Gulp 也都沒少 , 另外 Supervisord是一套管理常駐process的監控工具 , 可以監督你的 processs是不是有在運作, 也可以設定要起幾個 process , 很適合拿來做 Queue consumer 的監控管理, 有沒有覺得  web 開發的一切都幫你準備好了, 真是貼心.

前置準備:
我們需要先把 VirtualBox 跟 Vagrant 裝好, 安裝方式請直接前往官網, 安裝非常容易, 沒什麼特別困難得設定.

接下來我們要把 homestead 這個 vagrant box 下載回來, 請在 command line 下

vagrant box add laravel/homestead

Box抓好後, 接著我們要用 composer 來安裝最新版的 Laravel , composer 是 php 的套件管理工具 , 如果你還沒用過或裝過 composer , 請到 這邊 下載, 接著我們開始裝 Laravel,

composer global require "laravel/homestead=~2.0"

裝好後請確認  ~/.composer/vendor/bin 這個 path 有被設定為你的環境目錄,  這樣我們等一下才可以使用 homestead 的指令  , 接著我們轉移到你想要裝設網站的目錄去, 比如說 /home/vagrant/Sites , 然後下

homestead init

下完後他會產生一個叫 Homestead.yaml 的檔案, 如果你用過 vagrant , 他就相當是 homestead 的 vagrant file , 只是另外抽出成 yaml 檔引入而已.
我們等會需要去編輯 Homestead.yaml 告訴他 ssh 用哪把 key , 網路用什麼模式(NAT,Bridge,static….) , 現在我們先 gen 一把 ssh key 給 vagrant 用,

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

打開 Homestead.yaml 後 , 這邊可以設定你的 VM IP及分配的 Resource

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

這邊指定你的 ssh public key 跟 private key,

authorize: /Users/hampton/.ssh/id_rsa.pub

keys:
    - /Users/hampton/.ssh/id_rsa

下面兩個設定指定你的 local 目錄及要對應的 VM 目錄, 所以你可以在本機的目錄,使用你慣用的 IDE 或 editor , 存檔後直接在 VM 生效, 這是使用 vagrant 的好處之一.

folders:
    - map: /Users/hampton/Homestead/Projects
      to: /home/vagrant/Sites

最後我們要設定欲使用的 domain 及對應的目錄, 請把 laravel.dev 改成你想要用的 domain名稱.

sites:
    - map: laravel.dev
      to: /home/vagrant/Sites/laravel-basics/public

這邊還有個參數可以用就是要不要用 hhvm 啟動,

hhvm: true

如果你暫時不是那麼在意效能, 建議可以先不要開啟, 都設定好後, 我們可以啟動 homestead 了

homestead up

到此為止你的 homestead 已經跑起 , laravel 也就緒 , 可以準備開發了 , 不過因為我們是開發環境 , 假設你剛剛選用 laravel.dev 作為你的開發環境  domain , 記得到你的 hosts file , 把 domain 跟 IP 的對應加進去, 列如:

192.168.10.10 laravel.dev

現在你可以打開瀏覽器輸入:

http://laravel.dev

看看是不是可以看到  Laravel 的歡迎畫面.
這整個過程 , homestead 還幫你處理了  Nginx 的設定 , 所以你不需要為 web server 的設定煩惱 , 當然如果是 production 環境的建置 , 就得自己來了, 但是你依然可以參考整個 homestead 的配置方式 , 相信也不會很困難.

這篇文章算是 Laravel 系列的開端 , 之後會陸續增加教學文章 , 不過如過你急著快速上手,這邊推薦去看 Laracast 的 Laravel 4 From Scratch , Laracast 是 Laravel 教學影片大本營,每個教學影片都短短5-15分鐘  , 一天看一個  , 一個月後你就精通 Laravel 了.

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s