homestead安裝tips及問題錦集

以前開發laravel項目時,一直使用的是本身配置的box。最近有時間,因此想體驗一下homstead,可是在安裝過程當中仍是遇到了一些小問題,因此在此總結一下,也分享給你們。php

準備工做

  • 下載安裝virtualbox或者vmware,可是vmware是收費的。html

  • 下載安裝vagrantmysql

  • 注意windows系統,須要經過bios來開啓硬件虛擬化設備ios

下載homestead盒子

  • 使用vagrant下載盒子laravel

    • 下載homestead盒子,執行vagrant box add laravel/homesteadgit

    • 下載此盒子常常會由於網絡緣由而中斷,再執行此命令時會出現圖片描述github

    • 執行vagrant box add laravel/homestead -c,它會清除以前下載的緩存。sql

  • 使用連接數據庫

    • 使用vagrant命令添加box,是不支持斷點下載的,因此常常會由於網絡緣由斷開而致使下載失敗。因此,咱們能夠經過第三方工具下載。segmentfault

    • 如何得到下載地址呢?執行vagrant box add laravel/homestead後,選擇完虛擬服務提供者以後,就會出現連接。可參考途中綠色部分。由於個人電腦已經安裝了homestead,因此下面的圖是我以其餘的盒子爲例顯示的。
      圖片描述

  • 下載別人已經下載好的盒子

    • 當我嘗試這個方法時,下載的盒子出現了問題,因此沒有成功。若是經過composer下載盒子沒有成功,能夠參考這篇文章https://phphub.org/topics/2090

    • 這是我經過composer安裝的homestead0.4.4版本盒子,已上傳至百度雲。下載連接及密碼連接:http://pan.baidu.com/s/1kVEnT59 密碼: vzga

下載完以後的配置

  • 經過克隆homestead倉庫來配置homestead使用vagrant添加完box,通常咱們是在初始化以後在相應的vagrantfile中作配置的。克隆homestead倉庫是由於它替咱們作了一些工做,讓配置部分的工做更簡單。接下來,我會以我本地配置的laravel項目爲例。

    • 克隆homestead git clone https://github.com/laravel/homestead.git Homestead

    • 進入Homestead目錄,執行bash init.sh,生成Homestead.yaml配置文件。

    • 進入~/.homestead目錄,便可看到Homestead.yaml配置文件。

    • 分享一下個人Homestead.yaml相關配置, provider表示的是那個vagrant提供者;keys爲ssh key路徑,若是沒有ssh key則須要生成公共祕鑰;floders是配置本機與虛擬機中的共享文件夾的;

    ---
       ip: "192.168.10.10"
       memory: 2048
       cpus: 1
       provider: virtualbox
       
       authorize: ~/.ssh/id_rsa.pub
       
       keys:
           - ~/.ssh/id_rsa
       
       folders:
           - map: /Users/yuan/PhpstormProjects
             to: /www
       
       sites:
           - map: learn.laravel.com
             to: /www/laravel/public
       
       databases:
           - laravel
       
       # blackfire:
       #     - id: foo
       #       token: bar
       #       client-id: foo
       #       client-token: bar
       
       # ports:
       #     - send: 50000
       #       to: 5000
       #     - send: 7777
       #       to: 777
       #       protocol: udp
    • 打開hosts文件進行配置本地域名192.168.10.10 learn.laravel.com,便可訪問laravel這個項目

    • homestead默認的虛擬機的mysql用戶名:root,密碼:secret,host:127.0.0.1;若是須要經過ssh連接數據庫,ssh host:127.0.0.1,用戶名:vagrant,密碼:vagrant,ssh port:2201.

    • 目前homestead倉庫的分支php-7已經不存在,並且目前homstead倉庫都已支持php7.因此不須要再使用這個命令克隆或升級到php7git clone -b php-7 https://github.com/laravel/homestead.git Homestead

  • 使用vagrant傳統的方法

    • 建立一個開發目錄,例如homestead

    • 進入homstead目錄,vagrant init homestead

    • 同時homestead目錄中會有vagrantfile文件,參考vagrant文檔配置便可

    • 執行vagrant up啓動

    • 執行vagrant ssh進入

在homestead中全局安裝laravel

  • composer global require "laravel/installer"

  • export PATH="~/.config/composer/vendor/bin:$PATH" 確保 ~/.composer/vendor/bin 在系統路徑中

  • laravel new blog

  • 每次從新進入homestead,都要從新執行命令export PATH="~/.config/composer/vendor/bin:$PATH"

  • 可經過echo $PATH打印全局變量對比系統路徑變化

  • 至於爲何要確保確保 ~/.composer/vendor/bin 在系統路徑中,可進入該目錄一探究竟

修改Homestead.yaml

  • 今天我嘗試修改Homestead.yaml時,再使用vagrant reload從新加載box時出現問題

  • 修改homestead.yaml

  • 差了資料以後發現是我在修改Homestead.yaml這個文件時,使用了tab鍵,形成了文件的沒法讀取。因此小夥伴們若是出現了相似的問題,請檢查Homestead.yaml文件,是否使用tab鍵,是否出現拼寫錯誤。

  • 檢查完以後,請先執行vagrant provision

  • 若是沒有報錯,請執行vagrant reload --provision

  • 這是爲了從新加載Homestead.yaml,一旦修改這個文件,都請先執行這兩行命令

想作一個關於使用homestead的問題錦集,若是有小夥伴出現了本文沒有貼出來的問題,歡迎交流,我會添加進來?

參考文章:

相關文章
相關標籤/搜索