zoukankan      html  css  js  c++  java
  • 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--入门篇(环境配置)

  • 相关阅读:
    2018-2019-2 20165335『网络对抗技术』Exp5:MSF基础应用
    2018-2019-2 网络对抗技术 20165335 Exp4 恶意代码分析
    2018-2019-2 网络对抗技术 20165335 Exp3 免杀原理与实践
    2018-2019-2 网络对抗技术 20165335 Exp2 后门原理与实践
    2017-2018-2 『网络对抗技术』Exp1:PC平台逆向破解 20165335
    2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165335
    2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础
    2018-2019-2 网络对抗技术 20165115 Exp 8 Web基础
    2018-2019-2 20165115《网络对抗技术》Exp7 网络欺诈防范
    2018-2019-2 网络对抗技术 20165115 Exp6 信息搜集与漏洞扫描
  • 原文地址:https://www.cnblogs.com/wanghaitao/p/9440319.html
Copyright © 2011-2022 走看看