通過Homestead安裝Laravel

自己安裝了一篇,第一次接觸,確實比較繁瑣。記性越來越不好了,爲了防止重複造輪子,再次記錄過程。

1.環境介紹

操作系統:macOS Sierra

工具:(1)VirtualBox 5.2.10

          (2)Vagrant macOS 64-bit

          (3)Homestead Vagrant 盒子 laravel/homesterad 5.2.0

          (4)Homestead

          (5)Laravel 5.6


2.正式操作

    2.1安裝VirtualBox 5.2.10

        傳送門

        選擇對應的版本,下載安裝。

    2.2安裝Vagrant

        傳送門

        選擇本機對應的操作系統,下載安裝

    2.3克隆Homestead

        傳送門

        命令如下

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

         初始化

// Mac/Linux...
bash init.sh

// Windows...
init.bat

        正常情況下,這個時候會在Homestead目錄下生成Homestead.yaml

        Homestead.yaml是配置文件,配置內容如下:

        Laravel學院傳送門

          設置 Provider

Homestead.yaml 文件中的 provider 鍵表示使用哪個 Vagrant 提供者:virtualboxvmware_fushion、 vmware_workstationparallels 或 hyperv,你可以將其設置爲自己選擇的提供者,當然對大部分人來說也沒得選:

provider: virtualbox

            配置共享文件夾

Homestead.yaml 文件中的 folders 屬性列出了所有主機和 Homestead 虛擬機共享的文件夾,一旦這些目錄中的文件有了修改,將會在本地和 Homestead 虛擬機之間保持同步,如果有需要的話,你可以配置多個共享文件夾:

folders:
    - map: ~/Development    #本地環境,不要複製我
      to: /home/vagrant/Code    #虛擬機環境,不要複製我

            如果你只是創建了很少的站點,使用一般的映射就夠了。不過,隨着站點數量的增加,你就會遇到性能問題,尤其是在包含大量文件的低端機器或項目中,性能問題可能會非常明顯。如果你不幸遇到了這個問題,可以嘗試映射每個項目到各自的 Vagrant 文件夾:

folders:
    - map: ~/code/project1
      to: /home/vagrant/code/project1

    - map: ~/code/project2
      to: /home/vagrant/code/project2

            如果要開啓 NFS,只需簡單添加一個標識到同步文件夾配置:

folders:
    - map: ~/Development
      to: /home/vagrant/Code
      type: "nfs"

注:使用 NFS 的話,需要考慮安裝 vagrant-bindfs 插件。該插件可用於在 Homestead 盒子中爲文件和目錄維護正確的用戶/組權限。

            你還可以通過 options 傳遞其他 Vagrant 支持的同步文件夾選項:

folders:
    - map: ~/code
      to: /home/vagrant/code
      type: "rsync"
      options:
          rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
          rsync__exclude: ["node_modules"]

            配置 Nginx 站點

            對 Nginx 不熟?沒關係!通過 sites 屬性你可以方便地將“域名”映射到 Homestead 虛擬機的指定目錄,Homestead.yaml 中默認已經配置了一個示例站點。和共享文件夾一樣,你可以配置多個站點:

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

            如果你是在 Homestead 盒子啓動之後進行了上述修改,需要運行 vagrant reload --provision 更新虛擬機上的 Nginx 配置。

            Hosts文件

            不要忘記把 Nginx 站點配置中的域名添加到本地機器上的 hosts 文件中,該文件會將對本地域名的請求重定向到 Homestead 虛擬機,在 Mac 或 Linux上,該文件位於 /etc/hosts,在 Windows 上,位於 C:\Windows\System32\drivers\etc\hosts,添加方式如下:

192.168.10.10 homestead.test

            確保 IP 地址和你的 Homestead.yaml 文件中列出的一致,一旦你將域名添加到 hosts 文件,就可以在瀏覽器中通過該域名訪問站點了:

http://homestead.test

注:在真正可以訪問之前還需要通過 Vagrant 啓動虛擬機上的 Homestead 盒子。

    2.4安裝laravel/homesterad盒子

        官方是用一句代碼搞定的,如下:

vagrant box add laravel/homestead

        我反正搞不定,只能用迅雷大法下載離線包進行安裝。5.2.0 版本 傳送門

https://app.vagrantup.com/laravel/boxes/homestead/versions/5.2.0/providers/virtualbox.box

        目前(18年5月5日)最新版爲6.0.0,如果需要下載最新版,可以將上面的5.2.0,替換成6.0.0。可以使用迅雷下載

        用此方法,需要手動添加,命令如下,~/Downloads/virtualbox.box爲目錄地址,根據當前環境更改

vagrant box add laravel/homestead ~/Downloads/virtualbox.box

        終端中顯示綠色的box:Successfully add box laravel/homestead (v0) for 'virtualbox',就表示成功。可以使用下面的命令查看,如果出現 laravel/homestead (virtualbox , 0)就表示成功。

vagrent box list

        注意:因爲是手工添加,肯定會比自動的麻煩。上面添加成功之後,還得有下面的步驟,不能跳過。

        Homestead目錄創建metadata.json文件,內容如下

{
    "name": "laravel/homestead",            //盒子名稱
    "versions": 
    [
        {
            "version": "5.2.0",             //版本號
            "providers": [
                {
                  "name": "virtualbox",
                  "url": "virtualbox.box"   //盒子所在路徑
                }
            ]
        }
    ]
}

        注意:這裏,我把virtualbox.box放到了Homestead目錄下,生成以上文件後,再當前Homestead目錄下,執行

vagrant box add metadata.json

        即可添加帶有版本號的盒子,可通過 vagrant box list 查看, 最後通過 vagrant up 即可載入開啓虛擬機。

        其它方法傳送門

    2.5開啓虛擬主機

        執行vagrant up,開啓虛擬主機,初次執行時間會有點長。

        注意:(1)如果第二行顯示找不到 laravel/homestead ,那麼程序會自動調用遠端鏈接進行下載。這說明上面2.4那步加載盒子失敗了,請重新嘗試加載盒子。這邊正常的話是讀取本地的盒子,30s算很長了,不要傻等。

                  (2)也有可能提示目錄映射不正確,請排查Homestead.yaml文件的配置

        顯示下面的信息,並執行完畢後,就表示開啓成功。

        homestead-7:Successfully add box laravel/homestead (v5.2.0) for 'virtualbox'!

    2.6安裝Laravel

        之前一直很迷惑,上面的步驟到底是幹嘛的,我到底有沒有安裝了Laravel,甚至還去本地環境下載了Laravel用於映射到虛擬機中。。

        解答:上面安裝了一個虛擬機,然後配置好了php等一系列環境,然後,進入這個虛擬機,開始下載Laravel,以後都在虛擬機中進行操作,跟本地無關了。

        2.6.1進入虛擬機

vagrant ssh

        2.6.2查看共享目錄

            進入上面配置的folder共享目錄,沒有就創建,正常情況下,映射目錄中已和本地目錄中一致。

        2.6.3下載Laravel installer

composer global require "laravel/installer"

            這邊就能體現出Homestead的優勢了,composer,php,git全部都在環境變量中,都是最新版本,不需要自己考慮

        2.6.4新建應用

安裝完成後,通過簡單的 laravel new 命令即可在當前目錄下創建一個新的 Laravel 應用,例如,laravel new blog將會創建一個名爲 blog 的新應用,且包含所有 Laravel 依賴。該安裝方法比通過 Composer 安裝要快很多:

laravel new blog

如果之前已經安裝過舊版本的 Laravel 安裝器,需要更新後才能安裝最新的 Laravel 5.6 框架應用:

composer global update

        2.6.5通過瀏覽器訪問

通過http://homestead.test/blog/public訪問Laravel。看到下面的界面,即表示成功


總結:我爲了這個Homestead折騰了將近4個小時,包括下載。按照官方文檔,用命令行去下載virtualbox真的很難很難。不過當連接上Homestead的時候,感覺時間花的還是挺值的,以後會方便很多。
好啦,Laravel之旅開始了!繼續跳坑去了!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章