在看本篇安裝教學前可以參考翻譯完成的 Laravel Homestead,此篇會紀錄如何在 Ubuntu 底下快速架設 Laravel 環境,對於一般新手而言,剛開始安裝 Laravel 開發環境一定會遇到許多問題,為了解決開發環境,Laravel 推出 Homestead 搭配 Vagrant Box,讓初學者不用為環境問題而煩惱,減少浪費時間在架設 Laravel。簡單來說 Laravel Homestead = Vagrant + VirtualBox + Laravel 安裝包。底下簡單幾個步驟就可以完成 Laravel 開發環境。
步驟一:事前準備
由於 Laravel Homestead 是由 Vagrant + VirtualBox 組成,所以環境請先安裝好這兩個套件
假如您是 Windows 開發環境,請多安裝 Bash Tool,完成後你需要透過 Vagrant 下載封裝好的安裝包
$ vagrant box add laravel/homestead
由於檔案還蠻大的,需要一段時間,請耐心等候
步驟二: 安裝 Homestead 程式碼
此部份為 Vagrant 的設定檔,請直接抓取官方 Homestead 程式碼
$ git clone https://github.com/laravel/homestead.git Homestead
步驟三: 設定虛擬目錄
此步驟為設定開發虛擬目錄及相對應主機名稱,請先打開 Homestead.yaml
--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/Code to: /home/vagrant/Code sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public variables: - key: APP_ENV value: local
這邊需要注意的就是 folders
及 sites
兩項設定,假設今天你有兩個 Laravel 網站需要設定,環境相關路徑如下
# 網站一 主目錄: /home/git/laravel_1 public 目錄: /home/git/laravel_1/public 網域名稱: a.tw # 網站二 主目錄: /home/git/laravel_2 public 目錄: /home/git/laravel_2/public 網域名稱: b.tw
則我們在 Homestead.yaml
內則設定如下
folders: - map: /home/git/laravel_1 to: /home/vagrant/laravel_1 - map: /home/git/laravel_2 to: /home/vagrant/laravel_2 sites: - map: a.tw to: /home/vagrant/laravel.tw/public - map: b.tw to: /home/vagrant/laravel.tw/public
步驟四: 設定主機名稱
設定連接虛擬目錄的網域名稱,請打開 /etc/hosts
加入兩行設定
127.0.0.1 a.tw 127.0.0.1 b.tw
之後就可以透過這兩個虛擬網域來開發了
步驟五: 啟動 Vagrant up
最後請在 Homestead 目錄下執行 vagrant up
啟動訊息可以發現底下 port mapping
default: 80 => 8088 (adapter 1) default: 3306 => 33060 (adapter 1) default: 5432 => 54320 (adapter 1) default: 22 => 2222 (adapter 1)
如果 port 已經被佔用,請修改 scripts/homestead.rb
# Configure Port Forwarding To The Box config.vm.network "forwarded_port", guest: 80, host: 8088 config.vm.network "forwarded_port", guest: 3306, host: 33060 config.vm.network "forwarded_port", guest: 5432, host: 54320
如果你要啟動時更新系統套件及 composer 話請加入底下程式碼
# Copy The Bash Aliases config.vm.provision "shell" do |s| s.inline = "cp /vagrant/aliases /home/vagrant/.bash_aliases" end
改成
# Copy The Bash Aliases config.vm.provision "shell" do |s| s.inline = "cp /vagrant/aliases /home/vagrant/.bash_aliases" s.inline = "sudo apt-get update" s.inline = "sudo composer self-update" end
透過 vagrant ssh
可以登入系統,目前系統預設環境已經升級到 PHP 5.6.0 了,感謝 Laravel 作者更新 Box。
PHP 5.6.0-1+deb.sury.org~trusty+1 (cli) (built: Aug 28 2014 14:55:42) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
如果你的 Hoststead 並非是 5.6.0 環境,請直接透過 vagrant box update
更新 Box。最後補上啟動截圖