vagrant+VirtualBox 打造跨平台可移动的开发环境

原创
2017/03/16 23:29
阅读数 238

Vagrant使用教程

目标

  • 成果是打包一个box镜像
  • 这个box镜像需要运行 LAMP(Linux + Apache + Mysql + PHP ) 和 LNMP( Linux + Nginx + Mysql + PHP)
  • 配置好3个比较流行的PHP框架运行环境
    • Yii2
    • Laravel5
    • ThinkPHP5

**基础环境 **

测试了很多版本的VirtualBox和 Vagrant的版本兼容性,下面的两个搭配推荐。

启动虚拟机

对虚拟机优化

  • 替换源

    • sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
    • sudo vim /etc/apt/sources.list #修改源
    • sudo apt-get update #更新列表
  • L(A|N)MP

    • Ngnix

      • sudo apt-get install nginx

      • nginx -v

        nginx version: nginx/1.4.6 (Ubuntu)

      • 测试Nginx

        
            HTTP/1.1 200 OK
            Server: nginx/1.4.6 (Ubuntu)
            Date: Sat, 07 Jan 2017 07:49:41 GMT
            Content-Type: text/html
            Content-Length: 612
            Last-Modified: Tue, 04 Mar 2014 11:46:45 GMT
            Connection: keep-alive
            ETag: "5315bd25-264"
            Accept-Ranges: bytes
        
    • Apache

      • sudo apt-get install apache2

      • apache2 -v

        Server version: Apache/2.4.7 (Ubuntu) Server built: Jul 15 2016 15:34:04

      • 测试访问,此时不能访问,因为80端口被nginx占用了,可以先把nginx停掉

        
             HTTP/1.1 200 OK
             Date: Sat, 07 Jan 2017 08:15:26 GMT
             Server: Apache/2.4.7 (Ubuntu)
             Last-Modified: Sat, 07 Jan 2017 07:17:45 GMT
             ETag: "2cf6-5457bee51dd0d"
             Accept-Ranges: bytes
             Content-Length: 11510
             Vary: Accept-Encoding
             Content-Type: text/html`
        
      • 更改端口,将端口设置为8888

        
             HTTP/1.1 200 OK
             Date: Sat, 07 Jan 2017 08:24:15 GMT
             Server: Apache/2.4.7 (Ubuntu)
             Last-Modified: Sat, 07 Jan 2017 07:17:45 GMT
             ETag: "2cf6-5457bee51dd0d"
             Accept-Ranges: bytes
             Content-Length: 11510
             Vary: Accept-Encoding
             Content-Type: text/html`
        
    • Mysql

      • sudo apt-get install mysql-server #服务器端
        • 安装期间会提示输入为mysql设置root密码,我这边不操作,直接enter 不设置密码
      • sudo apt-get install mysql-client #客户端
        • mysql -uroot -p #测试连接库,上面安装服务端没有设置密码,这里直接enter进入
    • php

      • 安装php

        • sudo apt-get install php5-cli
          • php -v
          
                PHP 5.5.9-1ubuntu4.20 (cli) (built: Oct  3 2016 13:00:37)
                Copyright (c) 1997-2014 The PHP Group
                Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
                with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
          
      • PHP扩展

        • php5-mcrypt
        • php5-mysql
        • php5-gd
      • 支持apache2的php模块

        • sudo apt-get install libapache2-mod-php5
        • 开启rewrite功能
          • sudo a2enmod rewrite
      • 支持nginx fastcgi

        • sudo apt-get install php5-cgi php5-fpm
        • 修改成9000端口 ,默认sock模式
          • cd /etc/php5/fpm/pool.d
          • sudo vim www.conf # search listen = 127.0.0.1:9000
          • sudo /etc/init.d/php5-fpm restart
  • 端口转发 为了验证nginx是否按照成功~~

Vagrant高级配置

框架配置

优化

  • 虚拟机名称
    • vb.name = "ubuntu_mooc"
  • 虚拟机主机名
    • config.vm.hostname = "mooc"
  • 配置虚拟机内存和CPU
    • vb.memory = "1024"
    • vb.cpus = 2

打包命令

  • vagrant package --output xxx.box

Vagrant常用命令总结

*vagrant box list 查看目前已有的box

*vagrant box add 新增加一个box

*vagrant box remove 删除指定box

*vagrant init 初始化

*vagrant up 启动虚拟机

*vagrant ssh SSH 登陆虚拟机

*vagrant suspend 挂起虚拟机

*vagrant reload 重启虚拟机

*vagrant halt 关闭虚拟机

*vagrant status 查看虚拟机运行状态

*vagrant destroy 销毁当前虚拟机

权限问题: File Not Found :上一级目录权限找不到

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部