搭建vagrant开发环境
最近正好用着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进入
- sudo apt-get install mysql-server #服务器端
php
安装php
- sudo apt-get install php5-cli
- php -v
- sudo apt-get install php5-cli
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 注释打开
- runtime/logs": mkdir(): Permission denied
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开发环境的更多相关文章
- 自定义搭建PHP开发环境
学习了一段时间php了,因为之前是刚接触php,所以用的是集成安装包(wamp).现在想进一步了解apache.mysql.php之间的关系以及提升自己所以进行自定义搭建PHP开发环境.废话不多说,请 ...
- 使用virtualenv搭建python3开发环境
问题描述 环境: CentOS6.5 想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本. 之前的做法是直接从源码安装python3,替换掉现有的开发环 ...
- Windows下搭建PHP开发环境
PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...
- 搭建Android开发环境附图详解+模拟器安装(JDK+Eclipse+SDK+ADT)
——搭建android开发环境的方式有多种,比如:JDK+Eclipse+SDK+ADT或者JDK+Eclipse+捆绑好的AndroidSDK或者Android Studio. Google 决定将 ...
- mac os 下搭建android开发环境
mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...
- mac 下 用 glfw3 搭建opengl开发环境
mac 下 用 glfw3 搭建opengl开发环境 下载编译 glfw3 Build Setting 里面, Library Search Paths -> 设置好编译 glfw 库的路径 H ...
- 在Eclipse下搭建Android开发环境教程
我们昨天向各位介绍了<在NetBeans上搭建Android SDK环境>,前不久也介绍过<在MyEclipse 8.6上搭建Android开发环境>, 都受到了读者的欢迎.但 ...
- 第二章 搭建Android开发环境
这一章为我们讲解了如何搭建Android开发环境. 首先要了解的是Android底层开发需要哪些工具:搭建android应用程序开发环境.android NDK开发环境和交叉编译环境,前两个用来测试L ...
- 搭建java开发环境、使用eclipse编写第一个java程序
搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...
随机推荐
- Debian下Hadoop 3.12 集群搭建
Debian系统配置 我这里在Vmware里面虚拟4个Debian系统,一个master,三个solver.hostname分别是master.solver1.solver2.solver3.对了,下 ...
- springboot中oracle的依赖添加失败的解决
由于Oracle授权问题,Maven3不提供oracle JDBC driver 步骤一:在pom中添加如下: <!--Oracle 驱动 --> <dependency> ...
- Java中synchronized关键字你知道多少
1.什么是synchronized 我们将其理解为同步锁,可以实现共享资源的同步访问,解决线程并发的安全问题.synchronize翻译成中文:同步,使同步.synchronized:已同步. 1.1 ...
- Vue中 父子传值 数据丢失问题
在Vue中,父子组件传值,子组件通过props接收父组件传递的数据 父组件 questionList : 传递数据参数 questionsLists: 传递数据源 子组件 porps 接收父组件方式 ...
- Spring MVC内置支持的4种内容协商方式【享学Spring MVC】
每篇一句 十个光头九个富,最后一个会砍树 前言 不知你在使用Spring Boot时是否对这样一个现象"诧异"过:同一个接口(同一个URL)在接口报错情况下,若你用rest访问,它 ...
- HOWTO: Amira/Avizo中如何设置数据尺度单位
很多朋友是数据量化完成后,问统计表中的数据尺度单位,这种情况恐怕需要从头再处理一次,所以对于Amira/Avizo的新用户来说,在准备进行量化分析之前就应该设置好尺度单位,设置步骤如下: 1. 在A ...
- 使用jQuery.extend创建一个简单的选项卡插件
选项卡样式如图,请忽略丑陋的样式,样式可以随意更改 主要是基于jquery的extend扩展出的一个简单的选项卡插件,注意:这里封装的类使用的是es6中的class,所以不兼容ie8等低版本浏览器呦! ...
- 数组的方法 forEach filter map slice splice
目前一些数组的实用的方法 1 arr.splice(i,n) 删除从i(索引值)开始之后的那个元素.返回值是删除的元素,改变原数组: 参数: i 索引值 n 个数 let arr = [1, ...
- unity_UGUI养成之路02
1.技能的冷确效果 2.背包的分页效果 1创建背包的总面板,并添加ToggleGroup组件 2.物品面板的实现 3.背包分页的实现 注意:添加了Toggle组件的游戏对象不能再添加button组件. ...
- JVM中class文件探索与解析
一直想成为一名优秀的架构师的我,转眼已经工作快两年了,对于java内核了解甚少,闲来时间,看看JVM,吧自己的一些研究写下来供大家参考,有不对的地方请指正. 废话不多说,一起来看看JVM中类文件是如何 ...