最近正好用着Vagrant搭建开发环境,写一篇文章记录一下。

Vagrant目前是国内互联网公司应用最多的内部开发环境工具。

Mac、 Windows搭建是一样的,我是在Mac下搭建的环境。

vagrant 搭建开发环境

基础环境

virtualbox 5.1.8
下载地址:https://www.virtualbox.org/wiki/Download_Old_Builds_5_1

vagrant 1.8.6
下载地址:https://releases.hashicorp.com/vagrant/1.8.6

启动虚拟机

box下载

地址1:https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box

地址2: https://github.com/CommanderK5/packer-centos-template/releases/

下载之后请确保文件名为centos6.7.box

  • 添加box

    • vagrant box add centos67 centos6.7.box
  • 初始化box
    • vagrant init centos67
    • vagrant ssh

对虚拟机优化

  • 替换源

    • sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
    • sudo vim /etc/apt/sources.list #修改源
      • 将文件内容替换成以下内容
      •  deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
    • sudo apt-get update #更新列表

L(A|N)MP

Ngnix

sudo apt-get install nginx

nginx -v

   nginx version: nginx/1.4.6 

Apache

sudo apt-get install apache2

apache2 -v

   Server version: Apache/2.4.7

更改端口,将端口设置为8888

  • 修改 ports.conf 文件
  • curl -I 'http://127.0.0.1:8888'
  • 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扩展

      • 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

Vagrant高级配置

  • 端口转发

    • 配置

    config.vm.network "forwarded_port", guest: 80, host: 8888
    config.vm.network "forwarded_port", guest: 8888, host: 8889
    • 测试效果

      • http://127.0.0.1:8888/
      • http://127.0.0.1:8889/
  • 网络设置

    • 配置

      config.vm.network "private_network", ip: "192.168.199.101"

    • 效果

      • http://192.168.199.101/ 或者 http://192.168.199.101:80/
      • http://192.168.199.101:8888/
  • 共享目录

    • 配置

      config.vm.synced_folder "/Users/code/", "/home/www"

框架配置

  • tp5

    • git clone https://github.com/top-think/think tp5
    • 然后切换到tp5目录下面,再克隆核心框架仓库:cd tp5 && git clone https://github.com/top-think/frameworkthinkphp
    • nginx 配置
      • 无法查看日志 sudo chmod -R 755 /var/log/nginx
    • apache 配置
      • 无法查看日志sudo chmod -R 755 /var/log/apache2
      • Forbidden解决办法
        • cd /etc/apache2
        • sudo vim apache2.conf
             <Directory />
        Options FollowSymLinks
        AllowOverride None #修改成AllowOverride ALL 打开rewrite
        #Require all denied #把这行屏蔽掉,拒绝一切链接
        </Directory>
    • 测试效果
      • http://tp5.test 或者 http://tp5.test:8888
      • 做个测试页面 http://tp5.test/index/index/test 或者 http://tp5.test:8000/index/index/test
  • yii2

    • 下载:github.com/yiisoft/yii2/releases/download/2.0.10/yii-basic-app-2.0.10.tgz
    • nginx 配置
    • apache 配置
    • 测试效果 * http://yii.test 或者 http://yii.test:8888 * 做个测试页面 http://yii.test/site/test 或者 http://yii.test:8000/site/test
    • 问题
      • runtime/logs": mkdir(): Permission denied

        • 权限不够 chmod -R 777 runtime (如果在虚拟机不能修改文件权限,请使用nfs共享目录)
      • yii\web\Request::cookieValidationKey must be configured with a secret key.
        • config/web.php cookieValidationKey 赋值
      • 如果打不开 site/test ,请修改config/web.php 中urlManager 注释打开
  • laravel5

    • 下载: down.golaravel.com/laravel/laravel-v5.1.11.zip
    • nginx 配置
    • apache 配置
    • 测试效果
      • http://laravel.test 或者 http://laravel.test:8888

优化

  • 虚拟机名称

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

打包命令

  • vagrant package --output xxx.box

vagrant 常用命令

vagrant init 初始化配置

vagrant up 启动虚拟机

vagrant ssh ssh登录虚拟机

vagrant suspend 挂起虚拟机
vagrant reload 重启虚拟机

vagrant halt 关闭虚拟机
vagrant status 查看虚拟机状态
vagrant destroy 删除虚拟机

搭建vagrant开发环境的更多相关文章

  1. 自定义搭建PHP开发环境

    学习了一段时间php了,因为之前是刚接触php,所以用的是集成安装包(wamp).现在想进一步了解apache.mysql.php之间的关系以及提升自己所以进行自定义搭建PHP开发环境.废话不多说,请 ...

  2. 使用virtualenv搭建python3开发环境

    问题描述 环境: CentOS6.5 想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本. 之前的做法是直接从源码安装python3,替换掉现有的开发环 ...

  3. Windows下搭建PHP开发环境

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...

  4. 搭建Android开发环境附图详解+模拟器安装(JDK+Eclipse+SDK+ADT)

    ——搭建android开发环境的方式有多种,比如:JDK+Eclipse+SDK+ADT或者JDK+Eclipse+捆绑好的AndroidSDK或者Android Studio. Google 决定将 ...

  5. mac os 下搭建android开发环境

    mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...

  6. mac 下 用 glfw3 搭建opengl开发环境

    mac 下 用 glfw3 搭建opengl开发环境 下载编译 glfw3 Build Setting 里面, Library Search Paths -> 设置好编译 glfw 库的路径 H ...

  7. 在Eclipse下搭建Android开发环境教程

    我们昨天向各位介绍了<在NetBeans上搭建Android SDK环境>,前不久也介绍过<在MyEclipse 8.6上搭建Android开发环境>, 都受到了读者的欢迎.但 ...

  8. 第二章 搭建Android开发环境

    这一章为我们讲解了如何搭建Android开发环境. 首先要了解的是Android底层开发需要哪些工具:搭建android应用程序开发环境.android NDK开发环境和交叉编译环境,前两个用来测试L ...

  9. 搭建java开发环境、使用eclipse编写第一个java程序

    搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...

随机推荐

  1. win10下配置chromedrive。

    0x01:查看自己chrome的版本号 点击chrome右上角菜单栏,帮助,关于Google chrome,在这里,你可以看到自己chrome的版本号. 0x02:下载对应的chrome drive ...

  2. Vue实现静态数据分页

    <div style="padding:20px;" id="app"> <div class="panel panel-prima ...

  3. Codeforces 936B

    题意略. 思路: 图论里掺杂了一些动态规划. 有几个注意点: 1.dp时状态的设计:因为我们要寻求的是出度为0并且可以从起点走奇数步抵达的点,由于同一个点可以通过多种方式到达. 并且我们在获得奇数步点 ...

  4. MSIL实用指南-数学运算

    C#支持的数学运算是加.减.乘.除.取模,它们对应的指令是Add.Sub.Mul.Div.Rem. 这五个运算都需要两个参数,它们的通用步骤1.生成加载左边变量2.生成加载右边变量3.生成运算指令 实 ...

  5. CSAPP - Ch 1 - 计算机系统漫游

    目录 0 序言及摘要 1 信息就是位+上下文 2 程序被其他程序翻译成不同的格式 3 了解编译系统如何工作是大有益处的 0 序言及摘要 (1) 序言: CS:APP -- Computer Syste ...

  6. VS2019没有.net core3.0模板的解决办法

    今天装好了,net core sdk 3.0之后,打开Visual Studio2019后,新建项目时发现尽然没有.net core3.0的模板. 搜了下其他博主的文章,按照文章里做了如下设置:   ...

  7. redis之mq实现发布订阅模式

    示例代码-github 概述 Redis不仅可作为缓存服务器,还可用作消息队列,本示例演示如何使用redis实现发布/订阅消息队列. 在Redis中,发布者没有将消息发送给特定订阅者的程序.相反,发布 ...

  8. Java多线程(十二):中断机制

    这里详细分析interrupt(),interrupted(),isInterrupted()三个方法 interrupt() 中断这个线程,设置中断标识位 public void interrupt ...

  9. Keras(一)Sequential与Model模型、Keras基本结构功能

    keras介绍与基本的模型保存 思维导图 1.keras网络结构 2.keras网络配置 3.keras预处理功能 模型的节点信息提取 config = model.get_config() 把mod ...

  10. python中的全局变量

    1. 在函数中定义的局部变量如果和全局变量同名,则会使用局部变量(即隐藏全局变量). 示例: x = 1 def func(): x = 2 print x func() print x 运行结果: ...