文档章节

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

沐风storm
 沐风storm
发布于 2017/03/16 23:29
字数 1227
阅读 89
收藏 0

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 :上一级目录权限找不到

© 著作权归作者所有

沐风storm
粉丝 0
博文 10
码字总数 4795
作品 0
武汉
程序员
私信 提问
使用vagrant+virtualbox打造ngnix+apache+mysql+swoole环境

项目构架: 关于vagrant+virtualbox 的搭建请参考以下这个帖子 http://my.oschina.net/u/998304/blog/501331

杨太化
2015/09/10
79
0
德州仪器将为Arduino开源项目提供ARM芯片

Arduino,是一个开放源代码的单芯片微电脑,它使用了Atmel AVR单片机,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O 接口板,并且具有使用类似Java,C 语言的Processing/...

oschina
2013/10/06
4.4K
11
使用vagrant+VirtualBox搭建虚拟开发环境

Vagrant是一款用来构建虚拟开发环境的外挂工具,可以简化虚拟机配置和管理。它底层支持VirtualBox、VMware、AWS等,非常适合使用php/python/ruby/java语言开发web应用,“代码在我机子上运行...

bluehawksky
2018/05/23
0
0
最全最牛的Linux开发优秀资源清单!

  【IT168 资讯】Awesome-Linux-Software 是由 LewisVo 发起并维护的 Linux 软件资源列表。该列表收集了许多在 Linux 平台下非常棒的软件、实用工具以及其它相关资料,方便 Linux 爱好者查...

it168网站
2017/08/31
0
0
使用Vagrant部署K8S Ubuntu集群

背景 虽然官方已有一个vagrant开发环境可用于mac,但是有 几个问题: guest os是fedora,我不熟悉也不喜欢 使用了并不是必须的salt来装k8s,没有必要 国内使用的话需要配置翻墙代理,我本人用...

店家小二
2018/12/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面向海量数据的极致成本优化-云HBase的一体化冷热分离

前言 随着业务的持续发展,业务数据库存储量会持续增长。通常数据量过亿时,就需要考虑做分库分表,或者选择扩展能力更好的NOSQL/NewSQL数据库,如HBase就可以单表支持PB级数据,足够满足大多...

阿里云官方博客
27分钟前
3
0
最新最全国内外架构开源技术干货资料

大家好,废话不多说,整理了精心收集了各类资源。 声明,如侵犯个人利益,请联系小编,会立即删除相关资料。 领取方式在文末 求转发列表 好了,由于资源太多啦,就不一一列举了。 大家按照下...

泥瓦匠BYSocket
29分钟前
6
0
springmvc jsp访问不了css

在jsp中引入css,一直报404错误,直接访问css,也无法访问 将css文件移出WEB-INF,因为处于安全性考虑,这个目录禁止外部访问。 当引用css时,可以直接用绝对路径${pageContext.request.conte...

沉迷于编程的小菜菜
31分钟前
4
0
android 系统版本 9.1网络请求遇到坑

网络请求异常: E/http: CLEARTEXT communication to plat.xunlinkeji.cn not permitted by network security policy 在res下新建一个xml目录 创建名为network_security_config.xml 文件 ,该......

MrLins
49分钟前
5
0
Istio 1.3 发布,HTTP 遥测不再需要 Mixer

> 原文链接:Istio 1.3 发布,HTTP 遥测不再需要 Mixer Istio 是 Google、IBM 和 Lyft 联合开源的服务网格(Service Mesh)框架,旨在解决大量微服务的发现、连接、管理、监控以及安全等问题...

米开朗基杨
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部