使用vagrant一鍵部署本地php開發環境(一)
一:我們為什麼需要用這玩意
- 我們在開發中經常會面臨的問題:環境不一致,有人用Mac有人用Windos還有幾個用linux的,而我們的伺服器都是linux。
- 在我本地是可以的啊,我測了都,沒有問題啊,然後看著上線之後的500錯誤懵比。It works on my pc .
二:vagrant是什麼東西
Vagrant是一個基於Ruby的工具,用於建立和部署虛擬化開發環境。它 使用Oracle的開源VirtualBox虛擬化系統,使用 Chef建立自動化虛擬環境。-------------------來自百度百科。
直白的說是一鍵生成特定虛擬機器的工具。詳細的我們下邊會說。
三:所需的軟體:
1、virtualBox
2、vagrant
3、vagrant box
vagrant部署環境,需要一個box檔案。如果在公司裡面,可以從他們那裡拷一個box檔案安裝。這樣安裝的環境與他們的開發環境是一致的。box檔案也可以在網上下載。搜尋:vagrantbox
(備註:這個地址實際上是失效的,很多box檔案都找不到資源了,不過不要緊,因為我們可以自己做一個box,這個在下一篇文章我會講如何定製一個自己的box,順道放一個我製作好的基於centos7且安裝好lnmp1.5的box)連結: Centos-lnmp.box密碼: tssp
四:工作流程
五:vagrant的日常使用
下載以上vagrant和virtualbox之後,一路next安裝,安裝完成之後。
在任意位置新建一個資料夾,來管理你的box ,比如我們在D盤新建一個vagrant資料夾
1.把你下載的box檔案扔進來,如圖:
2.我們在這個位置開啟git-bash,或者用cmd切換到這個目錄,我們以git-bash為例:
1)執行
vagrant.exe box add centos centos-lnmp.box
該命令是給box起名並新增到box列表
需要注意的就是在cmd命令視窗下可以不用.exe 直接執行
vagrant box add {name(你要起的名字隨意)} {url/file(本地檔案地址或遠端地址)}
2)執行命令
vagrant.exe init {centos(剛剛add操作時起的名字)}
就像這樣,這個命令會初始化box並生成一個Vargrantfile的配置檔案,在這個檔案裡我們可以 設定一些配置資訊,比如共享主機目錄到虛擬機器目錄,網路,虛擬機器ip等資訊。
開啟配置檔案
這些配置項預設都是註釋掉的,我們需要找到這兩行進行設定。其中共享目錄的配置我們可以這樣寫,第一個引數為本地目錄,第二個引數是虛擬機器目錄,/ 代表了虛擬機器下的根目錄。
通過共享目錄設定,我們可以把我們的專案開發目錄對映到虛擬機器目錄,通過虛擬機器配置nginx,來讓專案直接跑在虛擬機器中。
config.vm.synced_folder "D:/data", "/vagrant_data"
3)部署環境
執行命令
vagrant.exe up
就可以一鍵部署虛擬機器環境了
4)虛擬機器管理
執行命令 vagrant.exe ssh
vagrant.exe ssh
就能直接連結到虛擬機器的系統了,目錄已經掛載好了,接下來就是考驗你linux操作能力的時候了,我們可以在這上邊檢視日誌等等一系列事情。
備註:你也可以通過xshell來連結你的虛擬機器,ip就是你配置的ip埠22,使用者名稱密碼均為vagrant
一般來說虛擬機器啟動之後就不需要管了。不過對於專案開發而言,你還需要做的一件事就是修改本地的hosts檔案,讓你請求的虛擬域名指向你的虛擬機器ip。
六:vagrant常用命令
- vagrant init # 初始化
- vagrant up # 啟動虛擬機器
- vagrant halt # 關閉虛擬機器
- vagrant reload # 重啟虛擬機器
- vagrant ssh # SSH 至虛擬機器
- vagrant status # 檢視虛擬機器執行狀態
- vagrant destroy # 銷燬當前虛擬機器
- vagrant box list # 檢視本地box列表
- vagrant box add # 新增box到列表
- vagrant box remove # 從box列表移除