一切的開始是vagrant的官方文檔
1橡娄、安裝必要的軟件
1.1、安裝vagrant
vagrant的官網(wǎng)地址是https://www.vagrantup.com/,官網(wǎng)頁面如下
安裝文件就去download就好了阱表,安裝過程是傻瓜式的安裝過程淹禾,下一步下一步的操作馁菜,如果需要更改安裝地址修改即可,安裝完畢之后使用命令行查看安裝版本:
出現(xiàn)上述的版本就說明vagrant是正確安裝的
1.2稀拐、安裝virtual box和Xshell
virtual box是虛擬機的運行環(huán)境火邓,同類型的還有VMWare、Parallels 或 Hyper-V,但是只有virtual box是不收費的铲咨,這個軟件的下載參考地址是:https://www.virtualbox.org/wiki/Downloads
Xshell是一個安全終端模擬軟件躲胳,這里不做過多的介紹,軟件下載參考地址:http://www.downza.cn/soft/235505.html
這兩個軟件都是傻瓜是的安裝過程纤勒,安裝路徑最好自定義在不是C盤即可坯苹;
2、vagrant的常用命令
vagrant的使用參考地址是:https://www.vagrantup.com/docs/index.html
下面簡單的介紹幾個常用的命令
2.1摇天、box相關(guān)的命令
命令 | 解釋 |
---|---|
vagrant box list | 查看目前已經(jīng)存在的box |
vagrant box add | 新增加一個box |
vagrant box remove | 移除一個box |
2.2粹湃、虛擬機相關(guān)的命令
命令 | 解釋 |
---|---|
vagrant init | 初始化配置文件vgrantfile |
vagrant up | 啟動虛擬機 |
vagrant ssh | ssh登錄虛擬機 |
vagrant suspend | 掛起虛擬機 |
vagrant reload | 重啟虛擬機 |
vagrant halt | 關(guān)閉虛擬機 |
vagrant status | 查看虛擬機狀態(tài) |
vagrant destory | 刪除虛擬機 |
3、虛擬機環(huán)境搭建
3.1泉坐、box文件依賴說明
vagrant搭建開發(fā)環(huán)境要依賴box文件为鳄,在官網(wǎng)上的findbox可以打開對應的box文件搜索站,地址是:https://app.vagrantup.com/boxes/search
上面的provider標識的是提供給什么樣的虛擬機管理軟件使用的腕让,比如virtualbox就是針對Virtual Box使用的孤钦,關(guān)于依賴的說法是vagrant可以使用在線或者離線的方式加載box文件來創(chuàng)建對應的虛擬環(huán)境
3.2、在線方式依賴box文件搭建虛擬機環(huán)境
下面使用“ubuntu/trusty64”為例子做虛擬機搭建的示例:
點擊對應的數(shù)據(jù)條目使用最新的版本做處理纯丸,如下是這個box文件的加載配置示例:
上面圖中的代碼段
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.box_version = "20190110.0.3"
end
后面會使用到偏形,下面是實操過程
創(chuàng)建一個test文件夾,并在這個文件夾中使用命令初始化
vagrant init
初始化完畢之后的文件夾下會多出一個‘Vagrantfile’文件觉鼻,圖中標記的代碼段就是需要在這個文件中配置的
替換Vagrantfile文件中的內(nèi)容為上面的代碼段俊扭,并在代碼段中新增IP地址的配置
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.box_version = "20190110.0.3"
config.vm.network "private_network", ip: "192.168.10.10",auto_config: true
end
然后運行下面的命令
vagrant up
這個命令根據(jù)‘Vagrantfile’文件去啟動虛擬機環(huán)境,過程如下:
在上述的這個啟動的過程中‘Virtual Box’軟件中也會出現(xiàn)變化坠陈,運行欄會新增一個虛擬機環(huán)境:
完成啟動之后使用Xshell本地端口2222連接虛擬機萨惑,初始的用戶名和密碼是vagrant,配置和連接成功的示意圖如下:
3.3、離線方式依賴box文件搭建虛擬機環(huán)境
3.3.1畅姊、下載離線box文件并添加box
還是使用上面的“ubuntu/trusty64”為例子做虛擬機環(huán)境離線搭建的示例咒钟,首先去下載這個的離線box文件
下面有一個box文件下載的參考地址:http://www.vagrantbox.es/
對應的找到“trusty64”的下載地址是:https://github.com/sepetrov/trusty64/releases/download/v0.0.5/trusty64.box
下載完畢之后放在指定的磁盤路徑上,這里放在了D盤的VM目錄下:
有了box使用下面的命令添加box
vagrant box add test trusty64.box
其中的test是為添加之后的box設定的名字若未,可以根據(jù)實際情況修改朱嘴,添加完畢之后使用下面的命令查看新增加的box
vagrant box list
3.3.2、基于離線box創(chuàng)建虛擬機環(huán)境
上面已經(jīng)添加了名字為test的box粗合,這里就基于這個box創(chuàng)建虛擬機
創(chuàng)建一個文件夾萍嬉,并在文件夾中使用下面的初始化命令
vagrant init test
初始化命令之后會生成Vagrantfile文件,在其中添加ip的配置設置
config.vm.network "private_network", ip: "192.168.10.11",auto_config: true
創(chuàng)建文件夾和執(zhí)行初始化的過程圖如下:
然后就是啟動這個虛擬機環(huán)境
vagrant up
啟動過程響應和Virtual Box中的顯示如下:
4隙疚、虛擬機內(nèi)的開發(fā)環(huán)境搭建
上面的過程已經(jīng)介紹了虛擬機的創(chuàng)建壤追,下面使用Xshell連接虛擬機并搭建php的開發(fā)環(huán)境,為了方便供屉,下面的安裝過程均使用命令行的方式安裝對應的軟件或者包文件行冰。
4.1溺蕉、備份和替換軟件源
備份命令
cp /etc/apt/sources.list /etc/apt/sources.list.bak
編輯替換源地址
sudo vim /etc/apt/sources.list
沒有安裝vim的使用apt-get install vim
安裝即可,安裝之前最好先更新apt-get update
,更換的源地址是:
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
替換之后再次更新apt-get update
4.2、安裝apache和nginx
apache和nginx是服務器軟件悼做,一般來說安裝一個即可疯特,這里兩個都安裝做演示用。
安裝nginx:
apt-get install nginx
安裝完畢之后已經(jīng)啟動了肛走,查看狀態(tài)和瀏覽器訪問示意:
安裝apache
apt-get install apache2
安裝完畢之后啟動查看運行的狀態(tài)和訪問示意:
4.3漓雅、安裝mysql
服務端安裝命了
apt-get install mysql-server
服務端安裝會提示輸入管理員密碼,自己設置一個即可
客戶端安裝命令
aot-get install mysql-client
安裝完畢之后使用mysql -uroot -p
輸入密碼登錄查詢mysql的版本
4.4朽色、安裝php
這里安裝PHP5的版本邻吞,整個記錄描述的重點不是php的版本而是可移植的開發(fā)環(huán)境搭建過程
安裝命令
apt-get install php5-cli
安裝完畢之后可以查看php的版本:
安裝幾個常用的擴展:
apt-get install php5-mcrypt
apt-get install php5-mysql
apt-get install php5-gd
4.5 配置apache和nginx支持php的解析
4.5.1、支持nginx的fastcgi模式
安裝php5-cgi和php5-fpm
apt-get install php5-cgi php5-fpm
安裝完畢之后修改連接池子的配置葫男,原來默認的是sock抱冷,現(xiàn)在修改為172.0.0.1:9000的監(jiān)聽
vim /etc/php5/fpm/pool.d/www.conf
屏蔽原來的sock,修改為127.0.0.1:9000
然后重啟fpm
sudo /etc/init.d/php5-fpm restart
接下來就是修改nginx的配置文件
vim /etc/nginx/sites-available/default
這里面有兩個地方需要修改:
1)新增默認解析文件配置梢褐,也就新加一個index.php
2)參照放開nginx解析PHP的配置部分,這一部分初始是注釋掉的
然后重啟nginx
sudo /etc/init.d/nginx restart
之后再nginx根目錄下新增index.php文件徘层,里面對phpinfo函數(shù)的輸出
cd /usr/share/nginx/html
echo '<?php phpinfo(); ?>' > index.php
瀏覽器訪問效果:
4.5.1、支持apache的PHP模塊
安裝模塊
apt-get install libapache2-mod-php5
安裝完畢之后啟動rewrite
sudo a2enmod rewrite
瀏覽器的訪問效果:
4.6利职、環(huán)境配置的額外說明
經(jīng)過上述的安裝,基本自定義出了一個自己常用的開發(fā)環(huán)境瘦癌,如果需要更加個性化的環(huán)境猪贪,上述的php,mysql讯私,apache或者nginx均可以使用源碼的方式來進行安裝
5热押、vagrant虛擬機配置優(yōu)化
詳細的vagrant配置和使用參見g官網(wǎng)文檔https://www.vagrantup.com/docs/index.html
下面列舉三個優(yōu)化的點
5.1、設置虛擬機端口轉(zhuǎn)發(fā)
虛擬機端口轉(zhuǎn)發(fā)參考鏈接
基礎配置的示例代碼:
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 80, host: 8080
end
guest表示的是虛擬機端口,host表示的是宿主機端口斤寇,設置示例如下:
將虛擬機80和8888端口分別轉(zhuǎn)發(fā)到宿主機的8888和8889端口桶癣,然后使用vagrant reload
命令重載虛擬機,啟動過程中的端口轉(zhuǎn)發(fā)如下:
重啟之后再瀏覽器中使用宿主機的8888和8889端口就可以訪問虛擬機的80和8888端口了娘锁,其中已經(jīng)把虛擬機的apache服務器的訪問端口設置為8888了牙寞,下面是在宿主機中的訪問注意看瀏覽器的地址欄:
5.2、共享文件夾設置
共享文件夾參考鏈接
基礎用法示例:
Vagrant.configure("2") do |config|
# other config here
config.vm.synced_folder "D:/readbooknote", "/home/www"
end
重啟vagrant reload
過程中的共享文件夾和實際虛擬機中的示例如下:
5.3 設置虛擬機ip
虛擬機的ip設置參考莫秆,這個里面有私有ip和公有ip的設置參考间雀,下面是開發(fā)環(huán)境中的私有ip設置示例:
Vagrant.configure("2") do |config|
# other config here
config.vm.network "private_network", ip: "192.168.10.11",auto_config: true
end
重啟vagrant reload
之后就可以在宿主機上使用設置的ip直接訪問虛擬機,就不需要通過宿主機端口轉(zhuǎn)發(fā)了镊屎,直接訪問如下惹挟,請注意地址欄:
6、vagrant打包分發(fā)操作
6.1缝驳、打包分發(fā)操作
上述的5個小節(jié)中比較詳細的說明了vagrant創(chuàng)建虛擬機并搭建lamp或者lnmp開發(fā)環(huán)境的過程连锯,整個過程就是為了最終能夠打包這個環(huán)境做準備的归苍,否則每一次都需要重復前面的操作也就失去了vagrant提供的便利性。
box文件搜索鏈接中能夠搜索到的包文件就是通過打包分發(fā)之后以便開發(fā)者下載并基于下載文件打造自己的開發(fā)環(huán)境运怖,大量的節(jié)省開發(fā)環(huán)境的搭建時間拼弃,但是我們總想擁有自己自定義的開發(fā)環(huán)境,這樣的情況下經(jīng)過上述的過程驳规、引入自己使用的開放框架代碼并打包成box文件肴敛,將box文件通過物理存儲盤、網(wǎng)盤或者團隊工作服務器進行上傳分發(fā)吗购,無論是新入職的員工搭建開發(fā)環(huán)境医男,還是更新已有開發(fā)環(huán)境都能在很短的時間內(nèi)實現(xiàn)了。
下面是實際的操作過程,打包命令如下
//不帶參數(shù)虛擬機被打包成名為package.box的文件
vagrant package
//帶 --output參數(shù)被打包為指定名字的.box文件
vagrant package --output xxx.box
打包之前需要停止虛擬機且最好將Vagrantfile文件中的ip設置屏蔽掉捻勉,或者增加auto_config參數(shù)镀梭,這個參數(shù)的值設置為true,否者其他人使用生成的.box文件創(chuàng)建開發(fā)環(huán)境的時候會出現(xiàn)連接錯誤
打包過程和產(chǎn)生的文件如下:
現(xiàn)在有了自己的自動以的.box文件踱启,那么就可以參考3.3節(jié)中的操作去快速構(gòu)建開發(fā)環(huán)境了
6.2报账、包更新和虛擬機更新
如果開發(fā)環(huán)境需要更新,分為兩個部分處理:
1)新用戶
使用備份的虛擬機重新安裝先關(guān)的軟件埠偿、包文件或者其他必須的文件透罢,處理完之后重新打包分發(fā),新用戶拿到box文件之后就可構(gòu)建更新后的開發(fā)環(huán)境冠蒋;
2)已經(jīng)在使用的用戶
使用provision
配置來安裝處理自己需要的東西(當然也可以直接手動安裝)羽圃,這個的參考說明見地址,下面以redis的安裝為例說明更新的操作
config.vm.provision "shell", inline: <<-SHELL
apt-get install -y redis-server
SHELL
配置完畢之后使用vagrant reload --provision
命令重啟,注意這里的新增參數(shù)--provision的使用