最近正好用着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. 【雕爷学编程】Arduino动手做(16)---数字触摸传感器

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  2. CNN中1x1 卷积的处理过程及作用

    参看:https://blog.csdn.net/ybdesire/article/details/80314925

  3. 内容协商在视图View上的应用【享学Spring MVC】

    每篇一句 人生很有意思:首先就得活得长.活得长才能够见自己,再长就可以见众生 前言 在经过 前两篇 文章了解了Spring MVC的内容协商机制之后,相信你已经能够熟练的运用Spring MVC提供的 ...

  4. springboot报 org.thymeleaf.exceptions.TemplateInputException: Error resolving template "succeed";

    --------------------- 本文转自 林晓风 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Lin_xiaofeng/article/details/ ...

  5. Selenium3 + Python3自动化测试系列六——等待方式

    等待 一.等待是什么,为什么要等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等, 这时候,我们就需要使用等待,来判断上一步操 ...

  6. Python Web 之 Flask

    FLASK 一.概述 flask是一个基于python并依赖于Jinja2模板引擎和WerkZeug WSGI(Web Server Gatewey InterFace.web)服务的框架 WSGI: ...

  7. GIS基础知识 - 坐标系、投影、EPSG:4326、EPSG:3857

    最近接手一个GIS项目,需要用到 PostGIS,GeoServer,OpenLayers 等工具组件,遇到一堆地理信息相关的术语名词,在这里做一个总结. 1. 大地测量学 (Geodesy) 大地测 ...

  8. Jedis操作Redis--Hash类型

    /** * Hash(哈希表) * HDEL,HEXISTS,HGET,HGETALL,HINCRBY,HINCRBYFLOAT,HKEYS,HLEN,HMGET,HMSET, HSET,HSETNX ...

  9. CodeForces 522C Chicken or Fish?

    Chicken or Fish? 题意比较难理解. 需要注意的是 就算某个人抱怨了 但是的t[i]也是他最后选择的结果. 题解: 首先考虑没有r[i] = 1的情况. 直接记录t[i]=0的数目,最后 ...

  10. andriod开发--使用Http的Get和Post方式与网络交互通信

    package com.example.a350773523.myapplication; import android.os.AsyncTask; import android.support.v7 ...