基於Vagrant搭建可移植的lnmp開發環境
使用vagrant搭建開發環境可以避免團隊開發帶來的開發環境不一致問題,避免了很多不必要的麻煩,同時其分發機制也也有利於新來的同事立即部署適合於公司的開發環境,非常便利,是很多網際網路公司的首選。因此,學習如何搭建基於vagrant的開發環境是很有必要的。
Vagrant 是一個簡單易用的部署工具,用英文說應該是 Orchestration Tool 。它能幫助開發人員迅速的構建一個開發環境,幫助測試人員構建測試環境, Vagrant 基於 Ruby 開發,使用開源 VirtualBox 作為虛擬化支援,可以輕鬆的跨平臺部署。
準備工作
- vagrant安裝 地址:https://www.vagrantup.com/dow...
- virtualbox安裝 地址:https://www.virtualbox.org/wi...
- xshell(如果你的開發機是window平臺) 地址:http://www.netsarang.com/prod...
- vagrant映象 地址:http://pan.baidu.com/s/1eRP0r...,你也可以到官方選擇下載自己喜歡的映象 地址:http://www.vagrantbox.es)
- 建立自己的工作目錄(筆者D:/vagrant)
預備知識
vagrant操作大多基於命令列,因此掌握幾個常用命令對於後續的學習非常有用
vagrant box list #檢視目前已有的box
vagrant box add #新增加一個box
vagrant box remove #刪除指定box
vagrant init #初始化配置vagrantfile
vagrant up #啟動虛擬機器
vagrant ssh #ssh登陸虛擬機器
vagrant suspend #掛起虛擬機器
vagrant reload #重啟虛擬機器
vagrant halt #關閉虛擬機器
vagrant status #檢視虛擬機器
vagrant destory #刪除虛擬機器
部署環境
1.安裝基礎環境
開啟XShell,輸入vagrant -v檢視vagrant是否安裝成功
在你之前建立的工作目錄建立一個虛擬機器
vagrant box add #新增加一個box
檢視已安裝的box
初始化box並且開啟虛擬機器,進入虛擬機器
vagrant init ubuntu1404
vagrant up
vagrant ssh
在window平臺下vagrant ssh命令可能無法進入虛擬機器,我們可以通過xshell客戶端進行典型的window式進入
2.安裝lnmp環境
進入虛擬系統後先更換源,以便於快速下載需要的工具
使用如下命令
sudo vim /etc/apt/sources.list
sudo apt-get update
如果提示未安裝vim,可使用命令
sudo apt-get install vim
安裝php與相關擴充套件
sudo apt-get install php5-cli
sudo apt-get install php-mcrypt
sudo apt-get install php-mysql
sudo apt-get install php-gd
sudo apt-get install php5-cgi php5-fpm
檢測是否安裝成功
php -v
安裝nginx
sudo apt-get install nginx
檢測是否安裝成功
nginx -v
curl -I '127.0.0.1'
安裝mysql
sudo apt-get install mysql-server
sudo apt-get install mysql-client
測試是否安裝成功
mysql -uroot -p
至此,完成了一大部分。
3.配置lnmp環境
配置php
sudo vim /etc/php5/fpm/pool.d/www.conf
將listen = /run/php5/php5-fpm.sock修改為listen = 127.0.0.1:9000
然後重啟sudo service php5-fpm restart
配置nginx
先備份default檔案為default.bak,然後修改default檔案,這樣就可以在指定目錄執行php專案了
4.配置vagrantfile
開啟主機上的d:/vagrant/vagrangfile檔案修改相關配置,讓專案可以在主機的瀏覽器上運行同時實時同步檔案共享操作
config.vm.network "forwarded_port", guest:80, host:8888
用於埠轉發,這樣我們就可以在主機瀏覽器通過連線http://127.0.0.1:8888訪問nginx了
config.vm.network "private_network",ip:"192.168.199.101"
用於網路配置,這樣我們就不必通過埠轉發進行訪問,只需要http://192.168.101就行了
config.vm.synced_folder "d:/phpcode","/home/www"
用於目錄共享,這樣我們在主機上編寫的專案就可以實時同步到開發環境中,非常方便
對於/home/www目錄,我們需要在虛擬機器上建立
sudo mkdir /home/www
完成後重啟虛擬機器
vagrant reload
這樣我們就完成了基於vagrant的lnmp開發環境的搭建
現在我們建立一個php.php檔案測試一下,如下圖
5.打包分發
vagrant package --output xxx.box