爲了解決環境不統一問題,因此要搭建這麼個玩意兒php
Laravel對環境有所要求(不使用Homestead狀況下),具體參考官網laravel
使用Homestead步驟git
摘要:github
Laravel 致力於讓整個 PHP 開發體驗變得愉快, 包括你的本地開發環境。 Vagrant 提供了一種簡單,優雅的方式來管理和配置虛擬機。 Laravel Homestead 是一個官方預封裝的 Vagrant box,它爲你提供了一個完美的開發環境,而無需在本地機器安裝 PHP 、Web 服務器和其餘服務器軟件。不用擔憂會搞亂你的操做系統!Vagrant boxes 是一次性的。若是出現問題,你能夠在幾分鐘內銷燬並建立 Box! Homestead 能夠運行在任何 Windows,Mac,或 Linux 系統,它包括了 Nginx web 服務器, PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6, MySQL,PostgreSQL,Redis,Memcached, Node,以及開發 Laravel 應用程序所須要的東西。——摘自後盾人向軍大叔(網站升級中,後期補連接)web
VirtualBox 是 Oracle 公司的開源虛擬機軟件。VirtualBox 號稱是最強的免費虛擬機軟件,它不只功能齊全,並且性能也很優異!VirtualBox 支持大部分流行的系統,如:Mac, Windows, Linux 等。數據庫
Vagrant 是用來管理虛擬機的工具,支持當前主流的虛擬機系統如 VirtualBox、VMware、AWS 等。Vagrant 的主要做用是提供一個可配置、可移植和複用的軟件環境。Vagrant 讓你經過編寫一個 Vagrantfile 文件來控制虛擬機的啓動、虛擬機網絡環境的配置、虛擬機與主機間的文件共享,以及啓動後自動執行一些配置腳本,如自動執行一個 Shell Script 來安裝一些必備的開發工具,如安裝配置MySQL、PHP,甚至是自動配置 Nginx 站點。這意味着,在一個多人開發的項目中,你只須要同步 Vagrantfile 文件,就能夠保證參與項目的每一個人各自的機器上擁有一致的開發環境。 能夠在下面網站上搜索須要的vagrant box https://app.vagrantup.com/boxes/searchbash
Homestead是一個官方預封裝的 Vagrant box,它爲你提供了一個完美的開發環境,而無需在本地機器安裝 PHP 、Web 服務器和其餘服務器軟件。不用擔憂會搞亂你的操做系統!Vagrant boxes 是一次性的。若是出現問題,你能夠在幾分鐘內銷燬並建立 Box!內置軟件:Ubuntu 16.0四、Git、PHP 7.二、PHP 7.一、Nginx、Apache (Optional)、MySQL ……服務器
白話理解:網絡
1. vagrant把帶有各類各樣內置軟件的Laravel/Homestead box(還有其餘的Homestead box)打包成一個文件夾成爲了一個鏡像box來進行管理app
2. 再把這個鏡像box安裝到VirtualBox這個虛擬主機當中,但由於它有可能有不少(vagrant box list來查看),因此須要對其中的具體的某一個進行標識,因此這就須要進行安裝Homestead管理腳本,下載好以後呢,進入Homestead文件夾中,裏面的Vagrantfile配置項就是決定着你使用的那個homestead box,可是開發做者呢,將是將這個文件引用另一個文件來進行管理的,因此咱們須要進行一步操做(看下面)
Ⅰ 在線安裝 Homestead Vagrant Box,這樣安裝下載會很是慢(我最快網速15M/S反正是中斷啊),可使用第二種本地文件安裝方式
vagrant box add laravel/homestead
Ⅱ 本地文件安裝 先下載 離線 homestead.box ,而後執行
vagrant box add laravel/homestead d:/code/homestead.box
解釋:
依次執行箭頭所指:
若是這個盒子不想用,能夠進行刪除(vagrant box remove laravel/homestead) 其餘的homestead box 只須要更名字就好啦~
III 安裝Homestead管理腳本
1 # clone管理腳本 2 # 注意 切換到穩定版本,不是master喲(目前是7.18.0) 3 git clone https://github.com/laravel/homestead.git ~/Homestead 4 5 # 進入家目錄 6 cd Homestead/ 7 8 # 由於master不穩定因此切到穩定tag 9 git checkout v7.18.0 10 11 # 建立 Homestead.yaml 配置文件(也就是Vagrantfile引用的文件),因此修改這個文件便可 12 ./init.bat 13 14 # 若是是本地安裝的 homestead.box 則它的版本爲0,因此須要修改下面步驟生成的配置文件 ~Homestead/scripts/homestead.rb 如下內容,否則的話啓動homestead的時候會進行更新操做 15 config.vm.box_version = settings["version"] ||= ">= 0"
Ⅳ SSH祕鑰登錄(把鏡像box安裝到VirtualBox後,不免要登錄到操做系統當中,因此須要這一步)
第一步:修改 Homestead.yaml 文件
keys: - ~/.ssh/id_rsa - ~/.ssh/id_rsa.pub
注意:進入cd .ssh/後這個文件夾中沒有id_rsa(私鑰) id_rsa.pub(公鑰)這兩個文件要進行下一步操做
(第二步)執行 ssh-keygen -t rsa -C "XXX@qq.com"(替換本身的郵箱),而後一路回車便可(中間有步驟讓設置密碼,由於是本地開發不必設置,因此一路回車)
V 文件夾同步配置(咱們不可能每次須要進入虛擬機來進行代碼的書寫,因此須要將本機和虛擬機進行鏈接來進行代碼書寫)
1 # map: 本機文件夾路徑 2 # to: 推送到的虛擬主機路徑 3 # 這個過程是雙向的 4 # ~表明家目錄(個人電腦是c:/Users/Dumpling) 5 folders: 6 - map: ~/code 7 to: /home/vagrant/code
VI vagrant命令(此時須要進入Homestead/文件夾)並測試文件同步
啓動虛擬機 —— vagrant up(由於在Homestead.yaml文件中的provider: virtualbox因此會安裝虛擬機會安裝到這個裏面)
1 #啓動 若是加上 --provision 選項那麼添加的新站點會發布到虛擬機上。 2 cd ~/Homestead && vagrant up 3 4 #關閉 5 vagrant halt 6 7 #經過 SSH 登陸 vagrant(須要先啓動 vagrant) 8 vagrant ssh 9 10 #查看目前安裝的box列表 11 vagrant box list 12 13 #刪除box鏡像 14 vagrant box remove laravel/homestead 15 16 #查看當前 Homestead 虛擬機的狀態。 17 vagrant status
進入虛擬機 —— vagrant ssh(界面以下)
測試文件同步
此時虛擬機的code目錄是空的,那麼進入到家目錄的code中建立一個文件看虛擬機中是否同時生成一個文件
本機建立後,查看虛擬機狀況以下
同步成功
VII 使用域名訪問到homestead虛擬主機
控制域名的地方在 Homestead.yaml文件中
1 # map:域名 2 # to:域名指向的目錄是虛擬機中的這個位置 3 sites: 4 - map: homestead.test 5 to: /home/vagrant/code/public
記得修改本機hosts文件喲(請按照本身的本本自行百度)
Ⅷ homestead連接數據庫
就只有端口不同而已~
要從主機的數據庫客戶端鏈接到 MySQL,就鏈接到 127.0.0.1和端口 33060 (MySQL) 。帳號密碼分別是 homestead/secret。
PHP代碼鏈接(虛擬機中鏈接)端口爲 3306
Ⅸ 全局命令
Mac/Linux:
若是iTems沒有使用風格包zshrc的話,就在家目錄下建立bash_profile文件,若有有的話修改修改zshrc文件
# 其實就是建立一個函數把進入Homestead/文件夾的操做,以及vagrant命令進行告終合 # 函數名能夠修改成本身的,我這裏是爲了方便記憶和區分 function homestead(){ ( cd ~/Homestead && vagrant $* ) }
Windows:同上(我反正按照中文手冊的操做是不行的~)
至此呢,有關於homestead的配置就完成啦~ 若是有任何不足,請予以指出。
最後呢 感謝一下後盾網~ 賊拉好的PHP學習,你們能夠去看看喲
謝謝觀賞~