搭建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. ...
随机推荐
- Gradle 是什么
写在前面的话,最近在系统的学习Gradle,本来想写一篇关于 Gradle 的介绍. 但在官网发现了这篇关于 Gradle 的介绍,已经介绍的很好了,我就很直接翻译过来了. 原文地址 https:// ...
- mysql------explain工具
基于mysql5.7,innodb存储引擎 使用explain关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字,MySQL ...
- Scrapy框架解读
1. Scrapy组件a. 主体部分i. 引擎(Scrapy):处理整个系统的数据流处理,触发事务(框架核心)ii. 调度器(Scheduler):1) 用来接受引擎发过来的请求, 压入队列中, 并在 ...
- jQuery Validate 可选项
- Linux shell脚本判断服务器网络是否可以上网
Linux shell脚本判断网络畅通 介绍 在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态 我们可以通过curl来访问 www ...
- Egret白鹭开发微信小游戏分享功能
今天给大家分享一下微信分享转发功能,话不多说,直接干 方法一: 1.在egret中打开Platfrom.ts文件,添加代码如下(当然,你也可以直接复制粘贴) /** * 平台数据接口. * 由于每款游 ...
- python2和python3的解释器安装
python环境及安装 主板:人的骨架 用于扩展设备 CPU:人的大脑 用于计算和逻辑处理 硬板:肚子 存储数据(永久存储) C盘···· 内存:存储数据(临时储存) 没有保存会消失 电源:人的心脏 ...
- 剑指Offer(二十五):复杂链表的复制
剑指Offer(二十五):复杂链表的复制 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/bai ...
- MSIL实用指南-生成while语句
本篇讲解怎样生成while语句.while语句是编程语言中很重要的循环语句,它的结构是while(<表达式>) <语句或语句块> 当表达式的结果为true时就一直执行语句或语句 ...
- 模板列传值到子窗体中,子窗体中多选gridview中checkbox保存数据多项到数据库中
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...