Laravel 環境安裝 Mac

安裝Homestead

Homestead = VirtualBox + Vargrnt + Homestead Vagrant Box + Homestead Scripts。

安裝VirtualBox

VirtualBox Download下載VirtualBox for OS X hosts

安裝Vagrant

Vagrant Download下載Vagrant for OSX。

下載Homestead

使用vagrant box add下載Homestead vagrant box

$ vagrant box add laravel/homestead

==> box: Loading metadata for box 'laravel/homestead'
    box: URL: https://vagrantcloud.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
==> box: Adding box 'laravel/homestead' (v4.0.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/4.0.0/providers/virtualbox.box

選擇 2 , virtualbox

下載鏈接有點慢,同時文件也較大,可以到這兒下載 https://atlas.hashicorp.com/laravel/boxes/homestead

到對應版本 URL 下然后增加 /providers/{{provider}}.box 就可以拿到單獨的下載地址了,然后再 vagrant box add 就好啦

vagrant box add laravel/homestead /Users/{user}/Downloads/virtualbox.box

修改virtualbox.box的版本號

cd ~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead

方法一:
1、該目錄下添加文件metadata_url

`vi metadata_url `
添加內容  https://atlas.hashicorp.com/laravel/homestead

2、把版本號 0 重命名為 下載的virtualbox.box的版本,比如 4.0.0

方法二:

修改homestead.rb文件,將config.vm.box_version = settings["version"]   ||= ">= 0.4.4"修改為config.vm.box_version = settings["version"] ||= ">=    0"

下載Vagrantfile + Scripts

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

Cloning into 'Homestead'...
remote: Counting objects: 2604, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 2604 (delta 9), reused 15 (delta 9), pack-reused 2583
Receiving objects: 100% (2604/2604), 484.91 KiB | 214.00 KiB/s, done.
Resolving deltas: 100% (1527/1527), done.
# achan @ achandeMac-mini in ~/Documents/WORKSPACE_PHP/Homestead on git:master o [10:18:44]
$ ll
total 176
-rw-r--r--   1 achan  staff   187B 11  1 10:17 CHANGELOG.md
-rw-r--r--   1 achan  staff   1.1K 11  1 10:17 LICENSE.txt
-rw-r--r--   1 achan  staff   1.6K 11  1 10:17 Vagrantfile
drwxr-xr-x   3 achan  staff   102B 11  1 10:17 bin
-rw-r--r--   1 achan  staff   809B 11  1 10:17 composer.json
-rw-r--r--   1 achan  staff    55K 11  1 10:17 composer.lock
-rw-r--r--   1 achan  staff   265B 11  1 10:17 init.bat
-rw-r--r--   1 achan  staff   250B 11  1 10:17 init.sh
-rw-r--r--   1 achan  staff   383B 11  1 10:17 phpunit.xml.dist
-rw-r--r--   1 achan  staff   1.4K 11  1 10:17 readme.md
drwxr-xr-x   7 achan  staff   238B 11  1 10:17 resources
drwxr-xr-x  28 achan  staff   952B 11  1 10:17 scripts
drwxr-xr-x   5 achan  staff   170B 11  1 10:17 src
drwxr-xr-x   6 achan  staff   204B 11  1 10:17 tests

Vagrantfile : 事實上將來每次下vagrant up指令時,就是在找這個檔案,這是Vagrant Box啟動時第一個執行的檔案,Homestead已經幫我們客製化了。

init.sh : 建立自己的Homestead.yaml、after.sh與aliases,稍後會用到。

scripts目錄 : Homestead自己會用到的scripts,如homestead.rb就在此目錄下。

設置SSH密鑰

將會使用SSH方式連接Homestead,所以要設定SSH。

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

設置Homestead.yaml

# achan @ achandeMac-mini in ~/Documents/WORKSPACE_PHP/Homestead on git:master o [10:34:23]
$ sh ./init.sh

init.sh會幫我們在~/.homestead/目錄建立Homestead.yaml ,還幫我們建立了after.sh與aliases

修改Homestead.yaml

homestead.rb會依照Homestead.yaml的設定為我們的Homestead做provision。

$ vi Homestead.yaml

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: /Users/achan/Documents/Homestead/Code   //本機目錄
      to: /home/vagrant/code   //虛擬機映射目錄

sites:
    - map: homestead.app
      to: /home/vagrant/code/public

databases:
    - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp
  • ip : 設定Homestead的IP,若IP沒有相衝,可以不用修改。
  • memory : 單位為MB,預設開2GB,若你嫌這樣太耗記憶體,根據經驗,512MB就可以讓Homestead啟動,不過有些service會失敗,1GB以上service都會正常,不過因為記憶體較少,有時會因為swap memory到HDD/SSD導致效能較差。
  • cpu : 維持預設1顆CPU即可。
  • provider : 使用VirtualBox,不用修改。
  • authorize : 設定SSH public key位置,若之前ssh-keygen使用預設位置建立,則不用修改。
  • keys : 設定SSH private key位置,若之前ssh-keygen使用預設位置建立,則不用修改。
  • folders : Homestead.yaml重要的設定,設定Mac本機與Homestead的對應路徑。
    * map : 設定Mac本機Laravel專案路徑,可自行修改。預設值是~/Code,目前接受預設值即可。
    • to : 設定Homestead內Laravel專案路徑,可自行修改。目前接受預設值即可。

事實上這就是VirtualBox的shared folder機制,我們知道VM最佳使用方式是環境灌在VM內,但專案放在本機,透過shared folder機制讓VM使用本機的專案,這樣的優點是儘管VM損毀開不了機,專案仍然不會受影響,因為專案是放在本機,只要再重新建立一個VM即可。

  • sites : Homestead.yaml重要的設定,讓你可以對Nginx設定網域主機名稱。

    • map : 網域主機名稱。預設為homestead.app,目前接受預設值即可。

    • to : 此站臺所對應的目錄名稱。預設為/home/vagrant/Projects/Laravel/public。因為Laravel的index.php放在public目錄下。目前接受預設值即可。

  • databases : Homestead.yaml重要的設定,可以在此設定資料庫名稱,由Homestead幫你自動建立。目前維持預設homestead即可。

  • variables : 設定Lavavel全域變數,目前使用預設值即

創建 Code目錄

$ cd /Users/achan/Documents/Homestead/
$ mkdir Code

Homestead.yaml 里面的Code目錄并不存在,因此要創建一個(Laravel代碼將下載到這兒)。

修改hosts

添加ip 與 主機名
192.168.10.10 homestead.app

啟動Homestead

使用vagrant up啟動Homestead

vagrant init

vagrant up

若此時打開VirtualBox,會發現有一個VM正在執行中,這也證明了Vagrant背後執行的是VirtualBox。

下載Laravel

使用vagrant ssh登入Homestead

vagrant ssh

進入之前創建的Code目錄cd Code

使用composer 下載larval
composer create-project laravel/laravel Laravel --prefer-dist

由于國內網絡問題,下載較慢。可以使用國內的鏡像
Packagist / Composer 中國全量鏡像

統一將專案放在Code目錄下,其中Laravel為你的專案目錄名稱。

Composer將會建立一個Laravel目錄,並將Laravel所需要的檔案透過網路下載。
–prefer-dist : 此參數意思是下載用於distribution的穩定版本,而不是正在開發中的版本,對於應用來說,穩定版本較適當。

使用瀏覽器驗證

輸入 http://homestead.app/
Laravel

若能在瀏覽器看到Laravel 5,恭喜你,Homestead與Laravel環境已經大功告成了。

增加更多網站

Homestead 環境配置完畢且成功運行后,你可能會想要為 Laravel 應用程序增加其他的 Nginx 站點。你可以在單個 Homestead 環境中運行多個 Laravel 程序。要添加其他網站,只需將網站配置信息添加到 Homestead.yaml 文件中:

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

如果 Vagrant 沒有自動管理你的「hosts」文件,你可能需要手動把新增的站點加入到該文件中:

192.168.10.10  homestead.app
192.168.10.10  another.app

添加站點后,從 Homestead 目錄運行 vagrant reload --provision 命令就可以應用新的更改。

如何在OS X安裝Homestead? | 點燈坊
Laravel 虛擬開發環境 Homestead | Laravel 5.5 中文文檔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,882評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,208評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,746評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,666評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,477評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,960評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,047評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,200評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,726評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,617評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,807評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,327評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,049評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,425評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,674評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,432評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,769評論 2 372

推薦閱讀更多精彩內容