1. 程式人生 > >在windows下進行 linux 開發 (轉載第七星塵的技術部落格)

在windows下進行 linux 開發 (轉載第七星塵的技術部落格)

1,介紹Vagrant

我們做web開發的時候經常要安裝各種本地測試環境,比如apache,php,mysql,redis等等。出於個人使用習慣,可能我們還是比較習慣用windows。雖然說在windows下搭建各種開發環境是可行的,各大開發環境都有windows版本。然而在windows下配置有時候會顯得繁瑣,並且還會導致開發環境(windows)和生產環境(lunix)不一致。
能不能在windows下也像linux那樣開發?也許你想到了,用虛擬機器。用虛擬機器裝個linux系統就好了。裝完linux系統就設定共享目錄,設定網路埠對映,等等。好像也有那麼點繁瑣。
還有,假如我們是一個團隊進行開發,那麼每個人的電腦上都要裝個虛擬機器+ linux系統+各種執行環境。手動設定麻煩不說,大家的開發環境不太一致(可能你裝了apcahe我裝了nginx等),也是頭疼。能不能把各種設定都自動化,並且保持整個團隊的開發環境一致呢?
Vagrant就是為了解決這個問題而生的。它使用開源 VirtualBox 作為虛擬化支援,可以輕鬆的跨平臺部署。

2,下載

3,安裝

下載好上面的軟體包後,先安裝VirtualBox,然後安裝Vagrant。都是雙擊即可安裝的,所以沒什麼好介紹。下面介紹下怎麼把映象匯入。
先新建一個工作目錄
比如我新建了D:VagrantWorkcentos-6.6-x86_64
開啟cmd命令提示符,進入新目錄,以我上面的目錄為例,輸入

        D:
        cd D:VagrantWorkcentos-6.6-x86_64

然後輸入命令初始化

vagrant init centos6.6

把下載的centos-6.6-x86_64.box複製到本目錄D:VagrantWorkcentos-6.6-x86_64下,執行

vagrant box add centos6.6 centos-6.6-x86_64.box

檢查是否匯入成功

vagrant box list

4,配置

用文字編輯器開啟D:VagrantWorkcentos-6.6-x86_64目錄下的Vagrantfile檔案便可以進行一些常用配置。
下面列舉出幾個常用的配置。要用到其他配置請訪問官網文件或者百度谷歌一下。
1,埠對映

config.vm.network :forwarded_port, guest: 80, host: 8080

把上面這句程式碼前面的#號去掉。它表示對映本機的8080埠到虛擬機器的80埠
2,如果需要自己自由的訪問虛擬機器,但是別人不需要訪問虛擬機器,可以使用private_network,併為虛擬機器設定IP。

config.vm.network :private_network, ip: 192.168.33.10

把上面這句程式碼前面的#號去掉即可
3,目錄對映

config.vm.synced_folder "D:/www", "/var/www/html"

如果啟用上面的命令,表示把本機的data目錄共享到虛擬機器裡的/var/www目錄

5,啟動

進入目錄D:VagrantWorkcentos-6.6-x86_64後執行命令

vagrant up

虛擬機器啟動之後則可以通過 vagrant ssh 聯入虛擬機器進行進一步的環境配置,或者軟體安裝相關的工作,在Windows系統下,並不能直接通過 vagrant ssh 連到虛擬機器,需要使用 Putty,Xshell 等第三方工具進行連線。連線地址127.0.0.1,埠2222。登入的帳號root的密碼為 vagrant

6,匯出

在cmd裡進行工作目錄後,執行下面命令

vagrant package

完成後會在當前目錄就會生成package.box,之後新建虛擬機器則可使用這個box。如果事先在你的虛擬機器裡建立好了各種開發環境,那麼你直接把這個box給你的團隊其他成員安裝,這樣就可以省去一臺臺電腦部署的時間,還可以保持開發環境一致。很方便有木有。

7,其他命令

下面列舉出一些常用的cmd操作命令
vagrant up (啟動虛擬機器)
vagrant halt (關閉虛擬機器——對應就是關機)
vagrant suspend (暫停虛擬機器——只是暫停,虛擬機器記憶體等資訊將以狀態檔案的方式儲存在本地,可以執行恢復操作後繼續使用)
vagrant resume (恢復虛擬機器 —— 與前面的暫停相對應)
vagrant box remove centos6.6 (移除box,其中centos6.6是box名)
vagrant destroy (刪除虛擬機器,刪除後在當前虛擬機器所做進行的除開Vagrantfile中的配置都不會保留)