最近正好用着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. 消息中间件——RabbitMQ(六)理解Exchange交换机核心概念!

    前言 来了解RabbitMQ一个重要的概念:Exchange交换机 1. Exchange概念 Exchange:接收消息,并根据路由键转发消息所绑定的队列. 蓝色框:客户端发送消息至交换机,通过路由 ...

  2. Java网络编程与NIO详解8:浅析mmap和Direct Buffer

    微信公众号[黄小斜]作者是蚂蚁金服 JAVA 工程师,目前在蚂蚁财富负责后端开发工作,专注于 JAVA 后端技术栈,同时也懂点投资理财,坚持学习和写作,用大厂程序员的视角解读技术与互联网,我的世界里不 ...

  3. Shell总结2

    1.---------->>sed命令用来取指定范围行. 2.--------------->>>>“$?“返回值的用法 (1)判断命令.脚本或函数等程序是否执行成 ...

  4. 神经网络 OCR 参考

    1. https://blog.csdn.net/u010159842/article/details/87271554 2. https://blog.csdn.net/weixin_4286104 ...

  5. 随笔编号-01 如何比较日期类型的String 大小浅谈.

    有三种解决方法: 第一种直接用字符串类的compareTo方法: String t1="20160707"; String t2="20160708"; int ...

  6. 01_liteide 集成环境运行的问题

    //go语言是以包为管理单位 //每个文件必须先声明包 //程序必须有一个main包 package main import (  "fmt" ) //入口函数 func main ...

  7. Windows GIT SSH 免密教程

    Windows GIT SSH 免密教程 安装git客户端,最新下载地址如下 https://github.com/git-for-windows/git/releases/download/v2.2 ...

  8. F#周报2019年第35期

    新闻 新增强的NuGet搜索 Windows Terminal预览版v0.4发布 在Visual Studio的YouTube频道上获取更多的新内容 .NET团队是如何使用Azure Pipeline ...

  9. 欧几里得(Euclid)与拓展的欧几里得算法

    欧几里得(Euclid)与拓展的欧几里得算法 欧几里得(Euclid)与拓展的欧几里得算法 欧几里得算法 原理 实现 拓展的欧几里得算法 原理 递归求解 迭代求解 欧几里得算法 原理 欧几里得算法是一 ...

  10. Win10下安装python3.x+pycharm+autopep8

    一.安装Python3.X 1.Pythong官方网站:http://python.org/getit/   下载windows的安装包.有以下几个选项: 这里选择windows x86-64 exc ...