Vagrant打造Laravel开发环境(LNMP)

Vagrant打造Laravel开发环境(LNMP)

96 
Junting 
2016.10.29 10:23*  字数 1246  阅读 2195 评论 4

准备工做


部署环境


一、首先,将VirtualBox 和 Vagrant 安装好!javascript

Vagrant 是一个简单易用的部署工具,用英文说应该是 Orchestration Tool 。它能帮助开发人员迅速的构建一个开发环境,帮助测试人员构建测试环境, Vagrant 基于 Ruby 开发,使用开源 VirtualBox 做为虚拟化支持,能够轻松的跨平台部署。php

通俗的来讲, 就是在本地部署一个和 Linux 虚拟机上的同步文件夹, 这样全部的操做都方便了许多。html

// 安装好后,查看下 Vagrant 版本
F:\Twitch\test>vagrant -v
Vagrant 1.8.6

二、进入工做文件夹java

workspace

三、打开终端进入工做目录,或者你能够在当前的目录按住 shift + 鼠标右键 可快速打开当前目录的 命令窗口mysql

Terminal
 // 执行 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
addBox

再来查看下 咱们 Vagrant 部署了那些工具吧!git

vagrantList

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行。

VagrantfileConf

七、到这里全部的配置就完成了,执行 vagrant up 正式启航吧!启动后会在工做目录下生成一个隐藏文件夹 .vagrant 目录

VagrantUp

分析下,

 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 ,这两个目录是同步的,这就作到了咱们在本地开发服务器上运行项目,固然这些参数都能在配置中修改
VagrantDetails

八、使用 Xshell 来链接咱们的虚拟机,两种链接方式!

使用 127.0.0.1 直接链接咱们的服务器,端口 2222 ,用户名密码 vagrant ,登录以后 你能够 sudo su 切换到 root 用户

loca

使用 192.168.66.11 来链接服务器,端口 22

private_network

以上咱们使用vagrant搭建ubuntu环境就成功了!

最后附上vagrant一些经常使用的命令, 但愿这能帮助大家, 别忘记点赞哟!


$ 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 打包到的地址/包名

部署LNMP


一、先更换下 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)
nginx

四、安装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相关的模块安装安装完成。

配置LNMP


一、配置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
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

wwwconf

注意:若是在遇到用户权限和文件权限的问题,修改下 上图中 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(); ?>
nginx Lnmp

至此,咱们LNMP环境搭建完成了!

安装 Laravel


请转到此处,Laravel--入门篇(环境配置)

相关文章
相关标签/搜索