Vagrant打造Laravel开发环境(LNMP)

Vagrant打造Laravel开发环境(LNMP)

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

准备工作


部署环境


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

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

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

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

2、进入工作文件夹

workspace

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

Terminal
 // 执行 vagrant box list 查看下当前 Vagrant 下部署了那些工具
F:Twitch	est>vagrant box list
ubuntu16.04 (virtualbox, 0)
初始安装,会告诉你什么都没有!

4、开始添加我们准备好的 Box 镜像吧, 执行 vagrant box add 系统名字 Box镜像地址

这里因为我之前添加的是test,所以这里我另起一个工作空间

F:Twitchlaravel>vagrant box add laravel /software/ubuntu16.04.box
addBox

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

vagrantList

5 、添加好Box镜像后,初始化环境(Initialization environment) ,执行 vagrant init 系统名,初始化成功你的工作目录下回生成一个 Vagrantfile 的配置文件

F:Twitchlaravel>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 启动你的系统!
初始化

6、环境配置

分配一个 IP,让本地可以访问到他,需要手动设置,默认是在 29行。

VagrantfileConf

7、到这里所有的配置就完成了,执行 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 ,这两个目录是同步的,这就做到了我们在本地开发服务器上运行项目,当然这些参数都能在配置中修改

VagrantDetails

8、使用 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 打包到的地址/包名

部署LNMP


1、先更换下 apt-get 源,这里我们使用清华大学的源,权威不是!参考

vagrant@ubuntu-xenial:/etc/apt$ sudo vim /etc/apt/sources.list
vagrant@ubuntu-xenial:/etc/apt$ sudo apt-get update

2、准备工作,安装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

3、安装Nginx

vagrant@ubuntu-xenial:~$ sudo apt-get -y install nginx 
vagrant@ubuntu-xenial:~$ nginx -v
nginx version: nginx/1.10.0 (Ubuntu)
nginx

4、安装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 多。

// 1、下载.deb包到你的服务器:
vagrant@ubuntu-xenial:~$ wget http://dev.mysql.com/get/mysql-apt-config_0.5.3-1_all.deb
// 2、然后使用**dpkg命令添加Mysql的源:**
vagrant@ubuntu-xenial:~$ sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb

注意: 注意在添加源的时候,会叫你选择安装 MySQL哪个应用,这里选择 Server即可,再选择 MySQL 5.7后又会回到选择应用的那个界面,此时选择Apply即可。

// 3、安装
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

5、安装PHP7.0

// 1、安装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
// 2、安装php7.0-mysql, php7.0与mysql通信的模块,关联上
vagrant@ubuntu-xenial:~$ sudo apt-get -y install php7.0-mysql
// 3、安装fpm,这是Nginx用来解析php文件的:
vagrant@ubuntu-xenial:~$ sudo apt-get install php7.0-fpm

// 4、安装其他的必备模块
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


1、配置PHP
输入/fix_pathinfo搜索,将cgi.fix_pathinfo=1改为cgi.fix_pathinfo=0:

vagrant@ubuntu-xenial:~$ sudo vim /etc/php/7.0/fpm/php.ini
php.ini

2、编辑fpm配置文件:

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,让他对项目目录达到所有权限!

3、配置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;
        }  //注意闭合哦! 
}    

如果是设置的 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 

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:/var/www/html$ sudo vim phpinfo.php
// 内容
<?php
phpinfo();
?>
nginx Lnmp

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

安装 Laravel


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

原文地址:https://www.cnblogs.com/wanghaitao/p/9440319.html