Vagrant Homestead

構(gòu)建 VirtualBox 和 Vagrant 開發(fā)環(huán)境

概念

  • VirtualBox -- Oracle 的虛擬機(jī)軟件
  • Vagrant 提供命令行接口省骂,允許自動(dòng)化安裝虛擬機(jī)族购,因?yàn)槭悄_本編寫的 provision 文本文件劫谅,給共享虛擬機(jī)配置提供了可能绰咽,Homestead 構(gòu)建在 Vagrant 之上眼坏。
  • Homestead 是 Laravel 官方封裝的一個(gè) Vagrant Box拂玻,是一臺(tái)虛擬機(jī)的虛擬機(jī)原型,運(yùn)行在 VirtualBox 上。

Vagrant就是一款構(gòu)建虛擬開發(fā)環(huán)境的工具檐蚜,支持window魄懂,linux,mac闯第,總有一款適合你逢渔。并且vagrant 可以把配置好的環(huán)境打包成一個(gè)box,分享給其他人直接使用乡括,非常方便肃廓。

環(huán)境說明

系統(tǒng):
macOS Sierra 10.12.4
虛擬機(jī):
http://download.virtualbox.org/virtualbox/5.1.22/VirtualBox-5.1.22-115126-OSX.dmg
開發(fā)環(huán)境:https://releases.hashicorp.com/vagrant/1.9.5/vagrant_1.9.5_x86_64.dmg

// 測試 vagrant 版本
vagrant -v 

box系統(tǒng):

Ubuntu http://files.vagrantup.com/precise64.box

安裝 box

[~/vagrant/boxes]$ vagrant box add ubuntu64.box 
==> box: Box file was not detected as metadata. Adding it directly...
A name is required when adding a box file directly. Please pass
the `--name` parameter to `vagrant box add`. See
`vagrant box add -h` for more help.
// 語法錯(cuò)誤,需要為box起名

[~/vagrant/boxes]$ vagrant box add ubuntu ubuntu64.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'ubuntu' (v0) for provider: 
    box: Unpacking necessary files from: file:///Users/junchow/vagrant/boxes/ubuntu64.box
==> box: Successfully added box 'ubuntu' (v0) for 'virtualbox'!

安裝 lnmp

// 創(chuàng)建 lnmp 環(huán)境
[~/vagrant/boxes] mkdir lnmp && cd lnmp
// 初始化 ubuntu
[~/vagrant/boxes/lnmp] vagrant init ubuntu
// 進(jìn)入 lnmp 虛擬機(jī)
[~/vagrant/boxes/lnmp] vagrant up
[~/vagrant/boxes/lnmp] vagrant ssh

// 安裝軟件
vagrant@precise64:~$ sudo apt-get install nginx mysql-server mysql-client php5-cli php5-fpm php5-gd php5-mysql

Laravel 虛擬開發(fā)環(huán)境 Homestead

https://vagrantcloud.com/laravel/boxes/homestead/

安裝 Homestead Vagrant Box

# 下載 Homestead 并添加到 vagrant box 中
[~/vagrant]$ vagrant box add Laravel/homestead
==> box: Loading metadata for box 'Laravel/homestead'
    box: URL: https://atlas.hashicorp.com/Laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) parallels
2) virtualbox
3) vmware_desktop

Enter your choice: 2

# 查看 vagrant box
[~/vagrant]$ vagrant box list
laravel/homestead (virtualbox, 2.1.0)
ubuntu            (virtualbox, 0)

手動(dòng)克隆代碼倉庫的方式來安裝 Homestead

# 克隆 homestead 項(xiàng)目到本地
[~/vagrant/boxes]$ git clone https://github.com/laravel/homestead.git Homestead

# 由于 Homestead 的 master 分支并不是穩(wěn)定分支诲泌,你應(yīng)該檢出已經(jīng)標(biāo)簽過的穩(wěn)定版本盲赊。
[~/vagrant/boxes]$ cd Homestead && git checkout v4.0.5

# 創(chuàng)建 Homesstead.yaml 配置文件
[~/vagrant/boxes/Homestead]$ bash init.sh 

配置 Homestead

[~/vagrant/boxes/Homestead] vim Homestead.yaml
memory: 2048
cpus: 1
# 配置 vagrant 提供者(虛擬機(jī)類型)
provider: virtualbox
# 配置 SSH 認(rèn)證
authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa
# 配置共享文件夾,本機(jī)與 Homestead 環(huán)境自動(dòng)更新同步
folders:
    - map: ~/Code // 本地~/Code 目錄
      to: /home/vagrant/Code //虛擬機(jī)中文件夾
      type: "nfs" //若啟動(dòng) NFS
# 配置 NGINX 站點(diǎn)
sites:
    - map: homestead.app //本地域名
      to: /home/vagrant/Code/Laravel/public //文件映射地址

databases:
    - homestead
# 配置本地 host
[~/vagrant/boxes/Homestead] vim /etc/hosts
192.168.10.10  homestead.app
# 修改配置后重新運(yùn)行
[~/vagrant/boxes/Homestead] vagrant reload --provision

啟動(dòng) Vagrant Box

# 啟動(dòng) vagrant 發(fā)生錯(cuò)誤
[~/vagrant/boxes/Homestead]$ vagrant up
/Users/junchow/vagrant/boxes/Homestead/scripts/homestead.rb:117:in `read': No such file or directory @ rb_sysopen - 

# 重新生成 ssh 登陸認(rèn)證的 key
[~/vagrant/boxes/Homestead]$ ssh-keygen

# 啟動(dòng) vagrant
[~/vagrant/boxes/Homestead]$ vagrant up


登陸 Homestead 并安裝 Laravel

# 登錄Homestead
[~/vagrant/boxes/Homestead]$ vagrant ssh

# 修改鏡像地址
vagrant@homestead:~$ composer config -g repo.packagist composer https://packagist.phpcomposer.com

# 安裝 Laravel
vagrant@homestead:~$ cd Code && composer create-project laravel/laravel --prefer-dist

# 若 autoload 或 bootstrap 不存在敷扫,說明依賴不完整哀蘑。
composer update --no-scripts

訪問測試
http://homestead.app/

mysql 數(shù)據(jù)庫
默認(rèn)賬戶密碼:homestead/secret

$ mysql -uhomestead -psecret

問題:
訪問 http://homestead.app 頁面出現(xiàn) no input file specified,檢查本地 Code 目錄代碼正常葵第,檢查homestead 中 Code 發(fā)現(xiàn)里面沒有代碼绘迁。解決方法是重新同步 vagrant reload --debug


λ ~/ homestead                                                                                                            [22:57:57]
zsh: command not found: homestead

# 將~/.composer/加入環(huán)境變量 PATH
λ ~/ echo $PATH

λ ~/ sudo vim .zshrc 
 export PATH="/Applications/MAMP/bin/php/php7.1.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/junchow/.composer/vendor    /bin"

λ ~/ sourch .zshrc

# 查看~/.composer/vender/lavarel/ 下是否存在 homestead
λ ~/.composer/vendor/laravel/ composer global require laravel/homestead

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卒密,隨后出現(xiàn)的幾起案子缀台,更是在濱河造成了極大的恐慌,老刑警劉巖哮奇,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膛腐,死亡現(xiàn)場離奇詭異,居然都是意外死亡鼎俘,警方通過查閱死者的電腦和手機(jī)哲身,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贸伐,“玉大人勘天,你說我怎么就攤上這事∽叫希” “怎么了脯丝?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長歌逢。 經(jīng)常有香客問我巾钉,道長,這世上最難降的妖魔是什么秘案? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任砰苍,我火速辦了婚禮潦匈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赚导。我一直安慰自己茬缩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布吼旧。 她就那樣靜靜地躺著凰锡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪圈暗。 梳的紋絲不亂的頭發(fā)上掂为,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音员串,去河邊找鬼勇哗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛寸齐,可吹牛的內(nèi)容都是我干的欲诺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼渺鹦,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼扰法!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起毅厚,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤塞颁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后卧斟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體殴边,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年珍语,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竖幔。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡板乙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拳氢,到底是詐尸還是另有隱情募逞,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布馋评,位于F島的核電站放接,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏留特。R本人自食惡果不足惜纠脾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一玛瘸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苟蹈,春花似錦糊渊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至菱鸥,卻和暖如春宗兼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氮采。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工针炉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扳抽。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓篡帕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贸呢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子镰烧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 話說作為laravel的開發(fā)者怔鳖,你聽說Homestead應(yīng)該很久了,可是官方推薦的開發(fā)環(huán)境在國內(nèi)為什么鮮有人用固蛾?我...
    學(xué)著放下閱讀 48,052評(píng)論 48 76
  • 這幾天閨女一直很忙结执,而且又已懷孕。我希望這次是男孩艾凯,一個(gè)女兒献幔,一個(gè)男孩多好啊趾诗!愿老天保佑蜡感。
    紅紅語錄閱讀 128評(píng)論 0 0
  • 覺得有意思:轉(zhuǎn)自《嘉谷種子》 聰明人都善用類推。圣人王陽明亦是如此恃泪≈P耍《傳習(xí)錄》中,有各種精妙的類比贝乎。讀之令人醍醐灌...
    petter102閱讀 365評(píng)論 0 2
  • 讀書時(shí)間:2017.1.15-2017.1.17讀書目的:大腦教育讀書筆記+心得:筆記: 1:正確的學(xué)習(xí)方法與勤奮...
    土食閱讀 421評(píng)論 0 0
  • 相識(shí) 我是去年認(rèn)識(shí)現(xiàn)在的老板的览效,同在一家公司認(rèn)識(shí)却舀,他是跟我上家老板合作的 虫几,而我上家常拖延發(fā)工資,老板有沒有能說服...
    小小手Greatlylove閱讀 307評(píng)論 2 0