1. 程式人生 > >使用vagrant一鍵部署本地php開發環境(一)

使用vagrant一鍵部署本地php開發環境(一)

一:我們為什麼需要用這玩意

  1. 我們在開發中經常會面臨的問題:環境不一致,有人用Mac有人用Windos還有幾個用linux的,而我們的伺服器都是linux。
  2. 在我本地是可以的啊,我測了都,沒有問題啊,然後看著上線之後的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常用命令

  1.  vagrant init      # 初始化
  2. vagrant up        # 啟動虛擬機器
  3. vagrant halt      # 關閉虛擬機器
  4. vagrant reload    # 重啟虛擬機器
  5.  vagrant ssh       # SSH 至虛擬機器
  6. vagrant status    # 檢視虛擬機器執行狀態
  7. vagrant destroy   # 銷燬當前虛擬機器
  8. vagrant box list    # 檢視本地box列表
  9. vagrant box add     # 新增box到列表
  10.  vagrant box remove  # 從box列表移除