一、首先,将VirtualBox 和 Vagrant 安装好!javascript
Vagrant 是一个简单易用的部署工具,用英文说应该是 Orchestration Tool 。它能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境, Vagrant 基于 Ruby 开发,使用开源 VirtualBox 做为虚拟化支持,能够轻松的跨平台部署。php
通俗的来讲, 就是在本地部署一个和 Linux 虚拟机上的同步文件夹, 这样全部的操做都方便了许多。html
// 安装好后,查看下 Vagrant 版本
F:\Twitch\test>vagrant -v
Vagrant 1.8.6
二、进入工做文件夹java
三、打开终端进入工做目录,或者你能够在当前的目录按住 shift + 鼠标右键 可快速打开当前目录的 命令窗口mysql
// 执行 vagrant box list 查看下当前 Vagrant 下部署了那些工具 F:\Twitch\test>vagrant box list ubuntu16.04 (virtualbox, 0) 初始安装,会告诉你什么都没有!
// 执行 vagrant box list 查看下当前 Vagrant 下部署了那些工具 F:\Twitch\test>vagrant box list ubuntu16.04 (virtualbox, 0) 初始安装,会告诉你什么都没有!
四、开始添加咱们准备好的 Box 镜像吧, 执行 vagrant box add 系统名字 Box镜像地址nginx
这里由于我以前添加的是test,因此这里我另起一个工做空间laravel
F:\Twitch\laravel>vagrant box add laravel /software/ubuntu16.04.box
再来查看下 咱们 Vagrant 部署了那些工具吧!git
5 、添加好Box镜像后,初始化环境(Initialization environment) ,执行 vagrant init 系统名,初始化成功你的工做目录下回生成一个 Vagrantfile 的配置文件sql
F:\Twitch\laravel>vagrant init laravel A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. 这里提示咱们,将 一个 Vagrantfile 文件放入了你的工做目录,而后你可使用 vagrant up 启动你的系统!
F:\Twitch\laravel>vagrant init laravel A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. 这里提示咱们,将 一个 Vagrantfile 文件放入了你的工做目录,而后你可使用 vagrant up 启动你的系统!
六、环境配置shell
分配一个 IP,让本地能够访问到他,须要手动设置,默认是在 29行。
七、到这里全部的配置就完成了,执行 vagrant up 正式启航吧!启动后会在工做目录下生成一个隐藏文件夹 .vagrant 目录
分析下,
default: Adapter 1: nat // 网络链接模式 default: Adapter 2: hostonly // 主机 ==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1) // 把服务器 22 端口映射到本地 2222 端口 ==> default: Booting VM... // 启动 ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 // 使用127.0.0.1:2222 来链接咱们的服务器 default: SSH username: vagrant // ssh 链接 用户名 default: SSH auth method: private key // 密码 default: your host and reload your VM. default: default: Guest Additions Version: 5.0.18 default: VirtualBox Version: 5.1 ==> default: Configuring and enabling network interfaces... ==> default: Mounting shared folders... default: /vagrant => F:/Twitch/laravel // 服务器下的 /vagrant 目录映射咱们本地的 F:/Twitch/laravel ,这两个目录是同步的,这就作到了咱们在本地开发服务器上运行项目,固然这些参数都能在配置中修改
default: Adapter 1: nat // 网络链接模式 default: Adapter 2: hostonly // 主机 ==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1) // 把服务器 22 端口映射到本地 2222 端口 ==> default: Booting VM... // 启动 ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 // 使用127.0.0.1:2222 来链接咱们的服务器 default: SSH username: vagrant // ssh 链接 用户名 default: SSH auth method: private key // 密码 default: your host and reload your VM. default: default: Guest Additions Version: 5.0.18 default: VirtualBox Version: 5.1 ==> default: Configuring and enabling network interfaces... ==> default: Mounting shared folders... default: /vagrant => F:/Twitch/laravel // 服务器下的 /vagrant 目录映射咱们本地的 F:/Twitch/laravel ,这两个目录是同步的,这就作到了咱们在本地开发服务器上运行项目,固然这些参数都能在配置中修改
八、使用 Xshell 来链接咱们的虚拟机,两种链接方式!
使用 127.0.0.1 直接链接咱们的服务器,端口 2222 ,用户名密码 vagrant ,登录以后 你能够 sudo su 切换到 root 用户
使用 192.168.66.11 来链接服务器,端口 22
以上咱们使用vagrant搭建ubuntu环境就成功了!
$ vagrant box add NAME URL #添加一个box $ vagrant box list #查看本地已添加的box $ vagrant box remove NAME virtualbox #删除本地已添加的box,如如果版本1.0.x,执行$ vagrant box remove NAME $ vagrant init NAME #初始化,实质应是建立Vagrantfile文件 $ vagrant up #启动虚拟机 $ vagrant halt #关闭虚拟机 $ vagrant destroy #销毁虚拟机 $ vagrant reload #重启虚拟机 $ vagrant package #当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box $ vagrant ssh #进入虚拟环境 打包 $ vagrant package 当前要被打包的系统名 --output 打包到的地址/包名
$ vagrant box add NAME URL #添加一个box $ vagrant box list #查看本地已添加的box $ vagrant box remove NAME virtualbox #删除本地已添加的box,如如果版本1.0.x,执行$ vagrant box remove NAME $ vagrant init NAME #初始化,实质应是建立Vagrantfile文件 $ vagrant up #启动虚拟机 $ vagrant halt #关闭虚拟机 $ vagrant destroy #销毁虚拟机 $ vagrant reload #重启虚拟机 $ vagrant package #当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box $ vagrant ssh #进入虚拟环境 打包 $ vagrant package 当前要被打包的系统名 --output 打包到的地址/包名
一、先更换下 apt-get 源,这里咱们使用清华大学的源,权威不是!参考
vagrant@ubuntu-xenial:/etc/apt$ sudo vim /etc/apt/sources.list vagrant@ubuntu-xenial:/etc/apt$ sudo apt-get update
vagrant@ubuntu-xenial:/etc/apt$ sudo vim /etc/apt/sources.list vagrant@ubuntu-xenial:/etc/apt$ sudo apt-get update
二、准备工做,安装language-pack-en-bas 语言包,解决系统不一样语言之间可能发生的冲突,安装以后能够减小许多因语言编码带来的问题。其中-y参数代表直接安装,无需确认。
vagrant@ubuntu-xenial:~$ sudo apt-get install -y language-pack-en-base //安装成功后,运行下面这条命令,设定语言编码为 UTF-8 vagrant@ubuntu-xenial:/etc/apt$ locale-gen en_US.UTF-8 // 安装Git,Vim vagrant@ubuntu-xenial:~$ sudo apt-get install git vim
vagrant@ubuntu-xenial:~$ sudo apt-get install -y language-pack-en-base //安装成功后,运行下面这条命令,设定语言编码为 UTF-8 vagrant@ubuntu-xenial:/etc/apt$ locale-gen en_US.UTF-8 // 安装Git,Vim vagrant@ubuntu-xenial:~$ sudo apt-get install git vim
三、安装Nginx
vagrant@ubuntu-xenial:~$ sudo apt-get -y install nginx vagrant@ubuntu-xenial:~$ nginx -v nginx version: nginx/1.10.0 (Ubuntu)
vagrant@ubuntu-xenial:~$ sudo apt-get -y install nginx vagrant@ubuntu-xenial:~$ nginx -v nginx version: nginx/1.10.0 (Ubuntu)
四、安装Mysql
直接安装Mysql5.7,5.7 能够说是里程碑式的版本,提升了性能,并增长了不少新的特性。特别是新增长的json字段,用过以后你会爱上她的!!
MySQL 开发团队于 9.12 日宣布 MySQL 8.0.0 开发里程碑版本(DMR)发布!可是目前 8.0.0 仍是开发版本,若是你但愿体验和测试最新特性,能够从http://dev.mysql.com/downloads/mysql/ 下载各个平台的安装包。不过,MySQL 软件包是愈来愈大了,Linux 平台上的二进制打包后就将近有 1 GB。若是在产品环境中使用,在 8.0 没有进入稳定版本以前,请继续使用 5.7 系列,当前最新的版本是 5.7.15 GA 版本——这只有 600 M 多。
// 一、下载.deb包到你的服务器: vagrant@ubuntu-xenial:~$ wget http://dev.mysql.com/get/mysql-apt-config_0.5.3-1_all.deb // 二、而后使用**dpkg命令添加Mysql的源:** vagrant@ubuntu-xenial:~$ sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb 注意: 注意在添加源的时候,会叫你选择安装 MySQL哪一个应用,这里选择 Server便可,再选择 MySQL 5.7后又会回到选择应用的那个界面,此时选择Apply便可。 // 三、安装 vagrant@ubuntu-xenial:~$ sudo apt-get update vagrant@ubuntu-xenial:~$ sudo apt-get install mysql-server vagrant@ubuntu-xenial:~$ mysql -V mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
// 一、下载.deb包到你的服务器: vagrant@ubuntu-xenial:~$ wget http://dev.mysql.com/get/mysql-apt-config_0.5.3-1_all.deb // 二、而后使用**dpkg命令添加Mysql的源:** vagrant@ubuntu-xenial:~$ sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb 注意: 注意在添加源的时候,会叫你选择安装 MySQL哪一个应用,这里选择 Server便可,再选择 MySQL 5.7后又会回到选择应用的那个界面,此时选择Apply便可。 // 三、安装 vagrant@ubuntu-xenial:~$ sudo apt-get update vagrant@ubuntu-xenial:~$ sudo apt-get install mysql-server vagrant@ubuntu-xenial:~$ mysql -V mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
五、安装PHP7.0
// 一、安装php7.0 vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0 vagrant@ubuntu-xenial:~$ php -v PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016, by Zend Technologies // 二、安装php7.0-mysql, php7.0与mysql通讯的模块,关联上 vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0-mysql // 三、安装fpm,这是Nginx用来解析php文件的: vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-fpm // 四、安装其余的必备模块 vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-curl vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-xml vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-mcrypt vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-json vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-gd vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-mbstring vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-dom vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-zip
// 一、安装php7.0 vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0 vagrant@ubuntu-xenial:~$ php -v PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016, by Zend Technologies // 二、安装php7.0-mysql, php7.0与mysql通讯的模块,关联上 vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0-mysql // 三、安装fpm,这是Nginx用来解析php文件的: vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-fpm // 四、安装其余的必备模块 vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-curl vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-xml vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-mcrypt vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-json vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-gd vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-mbstring vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-dom vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-zip
至此与php相关的模块安装安装完成。
一、配置PHP
输入/fix_pathinfo搜索,将cgi.fix_pathinfo=1改成cgi.fix_pathinfo=0:
vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/php.ini
vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/php.ini
二、编辑fpm配置文件:
vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/pool.d/www.conf
vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/pool.d/www.conf
找到listen = /run/php/php7.0-fpm.sock修改成listen = 127.0.0.1:9000。使用9000端口。
sudo service php7.0-fpm stop
sudo service php7.0-fpm start
注意:若是在遇到用户权限和文件权限的问题,修改下 上图中 user 和 group ,全改成vagrant,让他对项目目录达到全部权限!
三、配置Nginx:
配置 站点 下的default文件,修改前先备份一个哦!(/etc/nginx/sites-available/)
## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want to move this file somewhere, and start with a clean # file but keep this around for reference. Or just disable in sites-enabled. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ## # Default server configuration # server { listen 80; // 监听80端口, 默认站点 #listen [::]:80 default_server; // // IPV6 开启 # SSL configuration # # listen 443 ssl default_server; # listen [::]:443 ssl default_server; # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up on ssl_ciphers to ensure a secure configuration. # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # # include snippets/snakeoil.conf; root /var/www/html; // 配置网站站点目录 # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name localhost; // 域名 location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. #try_files $uri $uri/ =404; //首页访问规则 // 记得修改 try_files $uri $uri/ /index.php?$query_string; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # // 开启这块注释,解析php文件 location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php7.0-cgi alone: // 两种方式 : 1.监听 9000 端口, 2.sock 连接, 推荐使用 1 fastcgi_pass 127.0.0.1:9000; # # With php7.0-fpm: # fastcgi_pass unix:/run/php/php7.0-fpm.sock; } //注意闭合哦! }
## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want to move this file somewhere, and start with a clean # file but keep this around for reference. Or just disable in sites-enabled. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ## # Default server configuration # server { listen 80; // 监听80端口, 默认站点 #listen [::]:80 default_server; // // IPV6 开启 # SSL configuration # # listen 443 ssl default_server; # listen [::]:443 ssl default_server; # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up on ssl_ciphers to ensure a secure configuration. # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # # include snippets/snakeoil.conf; root /var/www/html; // 配置网站站点目录 # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name localhost; // 域名 location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. #try_files $uri $uri/ =404; //首页访问规则 // 记得修改 try_files $uri $uri/ /index.php?$query_string; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # // 开启这块注释,解析php文件 location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php7.0-cgi alone: // 两种方式 : 1.监听 9000 端口, 2.sock 连接, 推荐使用 1 fastcgi_pass 127.0.0.1:9000; # # With php7.0-fpm: # fastcgi_pass unix:/run/php/php7.0-fpm.sock; } //注意闭合哦! }
若是是设置的 fastcgi_pass unix:/var/run/php5-fpm.sock, fpm 配置文件不须要修改, 若是是监听 9000 端口就须要修改 fpm 配置文件 vim /etc/php5/fpm/pool.d/www.conf。
// 注释掉 sock 添加监听 9000 端口 ;listen = /run/php/php7.0-fpm.sock listen = 127.0.0.1:9000
// 注释掉 sock 添加监听 9000 端口 ;listen = /run/php/php7.0-fpm.sock listen = 127.0.0.1:9000
fpm 配置文件修改以后, 须要重启 fpm 才能生效 service php5-fpm start
, 若是想要检测 9000 端口是否开启成功运行 netstat -tln.
vagrant@ubuntu-xenial:~$ sudo /etc/init.d/nginx restart [ ok ] Restarting nginx (via systemctl): nginx.service.
vagrant@ubuntu-xenial:~$ sudo /etc/init.d/nginx restart [ ok ] Restarting nginx (via systemctl): nginx.service.
配置完后,咱们来运行一个文件!
vagrant@ubuntu-xenial:/var/www/html$ sudo vim phpinfo.php // 内容 <?php phpinfo(); ?>
vagrant@ubuntu-xenial:/var/www/html$ sudo vim phpinfo.php // 内容 <?php phpinfo(); ?>
至此,咱们LNMP环境搭建完成了!
请转到此处,Laravel--入门篇(环境配置)