全新離線安裝Laravel Homestead 記錄

之前安裝的homestead系統版本為Ubuntu14.04,現業務需要,需升級為16.04,在虛擬機中直接升級完成后,無法啟動。正好趁這個機會把所有需要升級的都升級一遍,全新安裝并Laravel運行環境。

1. 準備工作

  1. 備份好數據后,徹底刪除原來的運行環境,包括Homestead文件夾,虛擬機目錄,.homestead 文件夾,box(vagrant box remove boxname)等。
  2. 下載并安裝 Virtualbox
  3. 下載并安裝 vagrant
  4. 下載homestead離線安裝包 virtualbox,版本號的數字自行修改,如2.0.1
  5. virtualbox 可啟動,命令行中 vagrant -v 顯示vagrant版本號,準備工作完成。

2. 開始安裝

官方文檔給出的安裝方式為在線安裝,蛋疼的網速想要在短時間內安裝成功非常困難,所以這里采用離線安裝方式。

  1. 新建一個目錄,我這里命名為 vagrant,將準備工作下載好的 virtualbox.box 拷貝到該目錄下

  2. 添加box,這里步驟2與步驟3實現的效果一致,但步驟2添加成功后可能會有更新問題,推薦跳過此步驟直接執行步驟3.
    vagrant box list查看目前系統中已有的box,新加的box盡量不要與原有的box重名。
    vagrant vagrant box add laravel/homestead virtualbox.box,如果box文件在當前目錄下,直接添加文件即可,如果不在,需要寫明全路徑。

    看到success添加盒子就成功了。

  3. 在virtualbox.box鏡像所在目錄創建metadata.json,輸入以下內容

    {
        "name": "laravel/homestead",
        "versions": [{
            "version": "2.0.0",
            "providers": [{
                "name": "virtualbox",
                "url": "file://virtualbox.box"
            }]
        }]
    }
    

    其中,url最好寫box的全路徑。然后輸入以下命令添加box

    vagrant box add metadata.json
    

    查看已安裝的box

    vagrant box list
    

3. 克隆官方倉庫

homestead,vagrant,virtualbox之間的關系梳理

  1. homestead鏡像就是laravel官方為了方便開發者,將一系列的開發環境、軟件打包成一個鏡像供大家使用,當前homestead包含以下內容:Ubuntu 16.04,Git,PHP 7.1,Nginx,MySQL,Postgres,Composer,Node (With Yarn, Bower, Grunt, Gulp) 等。
  2. vagrant可以看作是對virtualbox或vmware的一個高級封裝,本質就是調用了一些virtualbox和vmware開放出來的api
  3. homestead git倉庫呢則是laravel官方對于homestead虛擬機的一些配置文件,里面有一些方便的linux腳本

clone 版本庫

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

4. 配置 Homestead

  1. 進入到clone的目錄中運行 init.sh,這樣就在家目錄中生成一個.homestead 的目錄,里面包含homestead虛擬機的配置文件 Homestead.yaml (homestead在github上的版本已更新到5.1,有一些文件發生了變動。最主要的變動是當運行init.bat或init.sh時候,幾個文件將不再復制到家目錄的.homestead文件,而是直接被復制到homestead項目的根目錄中。原先家目錄下的.homestead可以直接刪掉了!)
  2. 修改該文件
    ip: "192.168.10.10"
    memory: 2048
    cpus: 1
    provider: virtualbox
    
    authorize: ~/.ssh/id_rsa.pub
    
    keys:
        - ~/.ssh/id_rsa
    
    folders:
        - map: /myCodeDir
          to: /home/vagrant/www
    
    sites:
        - map: homestead.app
          to: /home/vagrant/www/Laravel/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
    
    主要需要改動的就是 folders這一項,將本機的一個目錄共享給虛擬機。
    rsa 公鑰私鑰路徑一定要對,不然無法啟動,沒有的話通過git bash或其他linux環境輸入以下命令生成
    ssh-keygen -t rsa -C "vagrant@homestead"
    

5. 啟動 homestead

  1. 進入到homestead目錄(git clone的那個) vagrant up,耐心等待一會就可以。
  2. 修改本地的hosts文件,添加homestead虛擬機的DNS
  3. 沒有報錯就正常啟動了。 輸入命令 vagrant ssh進入虛擬機。
  4. 升級,配置nginx等。

6. 參考資料

  1. 離線安裝&配置laravel開發環境homestead
  2. 私鑰問題
  3. 連接超時問題
  4. Vagrant入門
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容