在看本篇安裝教學前可以參考翻譯完成的 Laravel Homestead,此篇會紀錄如何在 Ubuntu 底下快速架設 Laravel 環境,對於一般新手而言,剛開始安裝 Laravel 開發環境一定會遇到許多問題,為了解決開發環境,Laravel 推出 Homestead 搭配 Vagrant Box,讓初學者不用為環境問題而煩惱,減少浪費時間在架設 Laravel。簡單來說 Laravel Homestead = Vagrant +VirtualBox + Laravel 安裝包。底下簡單幾個步驟就可以完成 Laravel 開發環境。
由於 Laravel Homestead 是由 Vagrant + VirtualBox 組成,所以環境請先安裝好這兩個套件
假如您是 Windows 開發環境,請多安裝 Bash Tool,完成後你需要透過 Vagrant 下載封裝好的安裝包
1
|
$ vagrant box add laravel/homestead
|
由於檔案還蠻大的,需要一段時間,請耐心等候
此部份為 Vagrant 的設定檔,請直接抓取官方 Homestead 程式碼
1
|
$ git clone https://github.com/laravel/homestead.git Homestead
|
此步驟為設定開發虛擬目錄及相對應主機名稱,請先打開 Homestead.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
---
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 網站需要設定,環境相關路徑如下
1
2
3
4
5
6
7
8
|
# 網站一
主目錄: /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 內則設定如下
1
2
3
4
5
6
7
8
9
10
11
|
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 加入兩行設定
1
2
|
127.0.0.1 a.tw
127.0.0.1 b.tw
|
之後就可以透過這兩個虛擬網域來開發了
最後請在 Homestead 目錄下執行 vagrant up 啟動訊息可以發現底下 port mapping
1
2
3
4
|
default: 80 => 8088 (adapter 1)
default: 3306 => 33060 (adapter 1)
default: 5432 => 54320 (adapter 1)
default: 22 => 2222 (adapter 1)
|
如果 port 已經被佔用,請修改 scripts/homestead.rb
1
2
3
4
|
# 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 話請加入底下程式碼
1
2
3
4
|
# Copy The Bash Aliases
config.vm.provision "shell" do |s|
s.inline = "cp /vagrant/aliases /home/vagrant/.bash_aliases"
end
|
改成
1
2
3
4
5
6
|
# 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。
1
2
3
4
5
|
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。最後補上啟動截圖