Vagrant打造Laravel开发环境(LNMP)

时间:2021-05-15 03:29:25

Vagrant打造Laravel开发环境(LNMP)

Vagrant打造Laravel开发环境(LNMP) 
Junting 
2016.10.29 10:23*  字数 1246  阅读 2195 评论 4

准备工作


部署环境


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

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

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

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

2、进入工作文件夹

Vagrant打造Laravel开发环境(LNMP)
workspace

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

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

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

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

F:\Twitch\laravel>vagrant box add laravel /software/ubuntu16.04.box
Vagrant打造Laravel开发环境(LNMP)
addBox

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

Vagrant打造Laravel开发环境(LNMP)
vagrantList

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

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 启动你的系统!
Vagrant打造Laravel开发环境(LNMP)
初始化

6、环境配置

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

Vagrant打造Laravel开发环境(LNMP)
VagrantfileConf

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

Vagrant打造Laravel开发环境(LNMP)
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 ,这两个目录是同步的,这就做到了我们在本地开发服务器上运行项目,当然这些参数都能在配置中修改

Vagrant打造Laravel开发环境(LNMP)
VagrantDetails

8、使用 Xshell 来连接我们的虚拟机,两种连接方式!

使用 127.0.0.1 直接连接我们的服务器,端口 2222 ,用户名密码 vagrant ,登陆之后 你可以 sudo su 切换到 root 用户

Vagrant打造Laravel开发环境(LNMP)
loca

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

Vagrant打造Laravel开发环境(LNMP)
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)
Vagrant打造Laravel开发环境(LNMP)
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
Vagrant打造Laravel开发环境(LNMP)
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

Vagrant打造Laravel开发环境(LNMP)
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();
?>
Vagrant打造Laravel开发环境(LNMP)
nginx Lnmp

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

安装 Laravel


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