Vagrant介绍

20170905150454262960769.png

Vagrant 是一个自动化构建虚拟机环境的工具,可以自动化虚拟机的安装和配置流程。

在团队开发的情况下,我们常常需要在多台机器间同步开发时,有的同事用的 wamp ,有的同事是用的 xampp ,可能在某些配置上的些许不同会导致些许不同或者bug,通过使用 Vagrant ,我们只需要同步 Vagrantfile ,就可以保证各台机器拥有一致的开发环境。也可以通过打包好一个Vagrant box ,供团队的同事使用,这样就能最大程度的保证开发环境一致,避免出现一些没必要的问题从而浪费精力去解决。

安装 Vagrant

1、安装 VirtualBox ,具体安装包直接从官网下载(要下载顺畅的话需翻墙):https://www.virtualbox.org/wiki/Downloads

2、安装 Vagrant,下载地址:https://releases.hashicorp.com/vagrant/

3、下载box镜像,这里我是下载的Ubuntu的box,可以到这个网址上去查找想下载的box:https://app.vagrantup.com/boxes/search

切换到自己的文件夹下,初始化vagrant环境,生成一个vagrantfile文件,命令如下:

  • 用 vagrant 命令加 box
1
$ vagrant box add testUbuntu ~/Downloads/ubuntu-14.04-amd64.box
  • 初始化虚拟机
1
$ vagrant init testUbuntu
  • 启动虚拟机
1
$ vagrant up
  • 进入虚拟机的 Ubuntu 系统
1
$ vagrant ssh

接下来还要对虚拟机进行一些配置。

打开 vagrantfile 文件进行配置,我的配置如下:

20170905150454225325210.jpg
20170905150454221966157.jpg

到这里,利用 vagrant 搭建虚拟机环境就基本完成了。

  • vagrant 常用命令
1
2
3
4
5
6
7
8
9
vagrant box add 添加box,自动帮你生成vagrantfile
vagrant init 初始化vagrantfile
vagrant halt 关闭虚拟机
vagrant destroy 销毁虚拟机
vagrant ssh 连接虚拟机
vagrant reload 重新加载vagarntfile文件
vagrant suspend 暂时挂起虚拟机
vagrant status 查看虚拟机运行状态
vagrant package --output 打包导出box

搭建 LNMP 环境

使用 vagrant ssh 登录到虚拟机的 Linux 系统上,就可以开始搭建 LNMP 的环境了。

在安装软件之前,需要对 Ubuntu 系统的镜像源文件 source.list 进行修改一下,可以在网上找一下网易的镜像源或者是阿里搜狐等的镜像源,然后写入 source.list 文件夹里(对源文件先进行下备份)。修改完之后还要运行一下 apt-get update 命令来更新一下镜像源。

安装 Nginx

使用apt-get install nginx便可以安装nginx。非常简单。
安转完之后,可以使用 curl -I '127.0.0.1'访问一下,看看是否安装成功。

安装 MySQL

使用 apt-get install mysql-server mysql-cli 安装MySQL的服务端可客户端,安装的时候需要设置一下密码。安装完之后,通过命令 mysql -uroot -ppassword 命令来登录数据库。

安装PHP 7.0

在这里,我使用 Ubuntu 的 PPA 源来安装 PHP 7.0。

  • 先介绍一下 PPA源

PPA 全称为 Personal Package(个人软件包档案),是 Ubuntu Launchpad 网站提供的一项服务,当然不仅限于 Launchpad 。它允许个人用户上传软件源代码,通过 Launchpad 进行编译并发布为二进制软件包,作为 apt/新立得源供其他用户下载和更新。在Launchpad网站上的每一个用户和团队都可以拥有一个或多个PPA。
通常 PPA 源里的软件是官方源里没有的,或者是最新版本的软件。相对于通过 Deb 包安装来说,使用 PPA 的好处是,一旦软件有更新,通过 sudo apt-get upgrade 这样命令就可以直接升级到新版本。

  • 如何通过 PPA 源来安装软件:

我们可以通过 Google 来搜索一些常用软件的 PPA 源,通常的搜索方法是软件名称关键字 + PPA ,或者也可直接到 launchpad.net 上去搜索,搜索到后我们就可以直接用 sudo apt-add-repository 命令把 PPA 源添加到 Source list 中了。
比如 FireFox PPA 源:https://launchpad.net/~ubuntu-mozilla-daily/+archive/ppa ,我们可以在这里找到 ppa:ubuntu-mozilla-daily/ppa 的字样,然后我们通过以下命令把这个源加入到 source list 中。

sudo apt-add-repository ppa:ubuntu-mozilla-daily/ppa

  • 开始安装 PHP 7.0

第一次使用PPA时,需要先安装一下 python-software-properties 和 software-properties-common

apt-get install python-software-properties software-properties-common

然后便可以开始安装PHP 7.0 了

1
2
3
$ add-apt-repository ppa:ondrej/php
$ apt-get update

安装PHP的一些扩展

$ apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-curl php7.0-cli php7.0-mbstring php7.0-dom

打开 php.ini进行配置

vim /etc/php/7.0/fpm/php.ini

将cgi.fixpathinfo=1 改成cgi.fixpathinfo=0,这个配置是为了避免 nginx 产生某个漏洞。具体参考鸟哥的文章http://www.laruence.com/2010/05/20/1495.html

cgi.fix_pathinfo=0

然后重启一下 php-fpm 服务。

到这里就成功搭建好了 LNMP环境了。

happy codding ! ^_^