背景
Laravel 是在 Vagrant 的基礎上讓開發環境更加統一,讓開發者都能在指定的具體開發環境下使用 Laravel,這時便有了 Homestead。Homestead 是一個基於 Ubuntu 構建的虛擬機,它包含了所有 Laravel 開發時需要用到的東西,你可以很輕鬆的通過指定的 Laravel 版本來找到相對應版本的 Homestead 並進行安裝。Homestead 提供的預設開發環境還會裝上很多常用的開發工具來輔助 Laravel 進行項目開發,包括 PHP7, Nginx, Redis, Memcached, MySQL, Git, Node.js, NPM 等等
為什麼要用Homestead
Homestead 是 Laravel 官方推薦的開發環境,開發盡量用Homestead。以下需要注意:
1.Homestead 統一了環境,避免歧義,減少新手在學習中遇到不必要的卡頓;
2.統一環境帶來的好處還有:當你遇到問題的時候,其他同學能很容易的幫助到你;
3.最大程度接近線上生產環境,為後續的課程做鋪墊;
4.這是最佳實踐,是需要從一開始培養起來的好習慣。
博主表示強烈要求入坑,必須要用,環境統一,外掛齊全,虛擬機自帶配置elasticsearch ;Homestead虛擬機啟動便可
Windows下的開發環境部署(請按照一下步驟安裝)
1 VirtualBox
VirtualBox 是 Oracle 公司的開源虛擬機軟體。
2 Vagrant
Vagrant 是用來管理虛擬機的工具,支持當前主流的虛擬機系統如 VirtualBox、VMware、AWS 等。Vagrant 的主要作用是提供一個可配置、可移植和復用的軟體環境。Vagrant 讓你通過編寫一個 Vagrantfile 文件來控制虛擬機的啟動、虛擬機網路環境的配置、虛擬機與主機間的文件共享,以及啟動後自動執行一些配置腳本,如自動執行一個 Shell Script 來安裝一些必備的開發工具,如安裝配置MySQL、PHP,甚至是自動配置 Nginx 站點。這意味着,在一個多人開發的項目中,你只需要同步 Vagrantfile 文件,就可以保證參與項目的每個人各自的機器上擁有一致的開發環境。
Homestead 介紹
Homestead 利用 Vagrantfile 提供的便利,Array了一整套的可配置、可移植和復用的 Laravel 開發環境。Homestead 虛擬機裡面包含了 Nginx Web 伺服器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 開發時需要用到的各種軟體。
Homestead 包含了兩個東西:
Homestead 管理腳本;
Homestead Box 虛擬機盒子。
接下來獨自說明下。
1. Homestead 管理腳本
Homestead 腳本使用 Ruby 和 Shell 腳本編寫而成。原理是對 Vagrantfile 文件做Array。將從 ~/Homestead/Homestead.yaml 讀取的配置信息,在 provision 時,解析為 Vagrant 命令並進行對虛擬機的配置。Homestead 腳本的作用在於,提供了極其簡單易用的接口,使我們只需要通過傻瓜化配置,即可完成複雜的任務。以下是幾個常用的任務:
IP 配置,端口映射;
Nginx Site 創建;
數據庫創建;
主機文件夾掛載到虛擬機等任務。
所有 Homestead 的版本歷史在 此處 可以找到。在本書中,為了提高操作的效率,我們將會使用Array版本的 Homestead。
2. Homestead Box 虛擬機盒子
homestead.box 虛擬機盒子是提前打包好的 Vagrant Box 虛擬機盒子,裡面預裝了 Nginx Web 伺服器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 開發時所需要用到的各種軟體。
安裝和使用 Homestead
- 下載和導入 Homestead Box
首先我們需要下載 Homestead 虛擬機盒子,下載後的文件為 lc-homestead-6.1.1-2018090400.zip,請對其進行 zip 解壓操作,解壓成功後可以看到目錄 lc-homestead-6.1.1-2018090400,此目錄下包含兩個文件:
virtualbox.box(教程Array化過的 Homestead 盒子)
metadata.json(盒子的導入配置文件)
在解壓目錄中 lc-homestead-6.1.1-2018090400 運行以下命令導入 Box:
> vagrant box add metadata.json
如果你使用的 Windows 系統在安裝 Homestead 的時候報錯:The box ‘laravel/homestead’ could not be found or
could not be accessed in the remote catalog.,請下載 MS Visual C++ 2010 x86 Redistributables 並進行安裝即可修復。
4 安裝GIT
5 下載 Homestead 管理腳本
利用Git 輸入命令:
> cd ~
> git clone Homestead
進入Homestead 目錄,初始化Homestead
> bash init.sh
Homestead.yaml 配置文件
1. 虛擬機設置
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
2.SSH 秘鑰登錄配置
authorize: ~/.ssh/id_rsa.pub
公鑰和私鑰一起同步到虛擬機
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
檢查主機上是否已經生成過 SSH Keyls -al ~/.ssh
生成 SSH Key
ssh-keygen -t rsa -C "你的郵箱賬號@.com"
Generating public/private rsa key pair.
回車儲存密鑰,設置密鑰
id_rs —— SSH 秘鑰的 私鑰 (Private Key)
id_rsa.pub —— SSH 秘鑰的 公鑰 (Public Key)
3. 共享文件夾配置
我們可以通過 folders 來指明本機要映射到 Homestead 虛擬機上的文件夾。
map 對應的是我們本機的文件夾,格式例如:E:/Homestead/Code,以開發者實際項目目錄為準。
to 對應的是 Homestead 上的文件夾。
folders:
- map: ~/Code
to: /home/vagrant/Code
創建Codecd ~
mkdir Code
4. 站點配置
將 homestead.test 映射到一個 Laravel 項目的 public 目錄上。
在hosts 192.168.10.10 homestead.test
5. 數據庫配置
databases:
- homestead
6. 自訂變數
variables:
- key: APP_ENV
value: local