使用vagrant一键部署本地php开发环境(一)
一:我们为什么需要用这玩意
我们在开发中经常会面临的问题:环境不一致,有人用Mac有人用Windos还有几个用linux的,而我们的服务器都是linux。
在我本地是可以的啊,我测了都,没有问题啊,然后看着上线之后的500错误懵比。It works on my pc .
二:vagrant是什么东西
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。-------------------来自百度百科。
直白的说是一键生成特定虚拟机的工具。详细的我们下边会说。
三:所需的软件:
1、virtualBox
可以到VirtualBox的官网进行下载:
https://www.virtualbox.org/wiki/Downloads
2、vagrant
可以到vagrant官网下载
https://www.vagrantup.com/downloads.html
这个下载特别慢,这里放出百度云的链接
链接: https://pan.baidu.com/s/1Toy3SRRACOWa8g0ybUHD8Q 密码: puwm
3、vagrant box
vagrant部署环境,需要一个box文件。如果在公司里面,可以从他们那里拷一个box文件安装。这样安装的环境与他们的开发环境是一致的。box文件也可以在网上下载。搜索:vagrantbox
http://www.vagrantbox.es/
(备注:这个地址实际上是失效的,很多box文件都找不到资源了,不过不要紧,因为我们可以自己做一个box,这个在下一篇文章我会讲如何定制一个自己的box,顺道放一个我制作好的基于centos7且安装好lnmp1.5的box)链接: Centos-lnmp.box密码: tssp
四:工作流程
五:vagrant的日常使用
下载以上vagrant和virtualbox之后,一路next安装,安装完成之后。
在任意位置新建一个文件夹,来管理你的box ,比如我们在D盘新建一个vagrant文件夹
1.把你下载的box文件扔进来,如图:
2.我们在这个位置打开git-bash,或者用cmd切换到这个目录,我们以git-bash为例:
1)执行
- vagrant.exe box add centos centos-lnmp.box
该命令是给box起名并添加到box列表,注意:win10系统在执行“ vagrant box add centos7 vagrant-centos-7.box”添加box时,报错“Vagrant failed to initialize at a very early stage: Failed to locate the powershell executable on the available PATH. ”
需要注意的就是在cmd命令窗口下可以不用.exe 直接执行
- vagrant box add {name(你要起的名字随意)} {url/file(本地文件地址或远程地址)}
2)执行命令
- vagrant.exe init {centos(刚刚add操作时起的名字)}
就像这样,这个命令会初始化box并生成一个Vargrantfile的配置文件,在这个文件里我们可以 设置一些配置信息,比如共享主机目录到虚拟机目录,网络,虚拟机ip等信息。
打开配置文件
这些配置项默认都是注释掉的,我们需要找到这两行进行设置。其中共享目录的配置我们可以这样写,第一个参数为本地目录,第二个参数是虚拟机目录,/ 代表了虚拟机下的根目录。
通过共享目录设置,我们可以把我们的项目开发目录映射到虚拟机目录,通过虚拟机配置nginx,来让项目直接跑在虚拟机中。
- config.vm.synced_folder "D:/data", "/vagrant_data"
3)部署环境
执行命令
- vagrant.exe up
就可以一键部署虚拟机环境了
4)虚拟机管理
执行命令 vagrant.exe ssh
- vagrant.exe ssh
就能直接链接到虚拟机的系统了,目录已经挂载好了,接下来就是考验你linux操作能力的时候了,我们可以在这上边查看日志等等一系列事情。
备注:你也可以通过xshell来链接你的虚拟机,ip就是你配置的ip端口22,用户名密码均为vagrant
一般来说虚拟机启动之后就不需要管了。不过对于项目开发而言,你还需要做的一件事就是修改本地的hosts文件,让你请求的虚拟域名指向你的虚拟机ip。
六:vagrant常用命令
- vagrant init # 初始化
- vagrant up # 启动虚拟机
- vagrant halt # 关闭虚拟机
- vagrant reload # 重启虚拟机
- vagrant ssh # SSH 至虚拟机
- vagrant status # 查看虚拟机运行状态
- vagrant destroy # 销毁当前虚拟机
- vagrant box list # 查看本地box列表
- vagrant box add # 添加box到列表
- vagrant box remove # 从box列表移除
原文:https://blog.csdn.net/qq_39195042/article/details/82700277
使用vagrant一键部署本地php开发环境(一)的更多相关文章
- 使用vagrant一键部署本地php开发环境(二)制作自己的vagrant box
在上篇的基础上 ,我们已经安装好了virtualbox和vagrant,没有安装的话,参照上篇 使用vagrant一键部署本地php开发环境(一) 1.从网易镜像或阿里等等镜像下载Centos7 ht ...
- 使用Vagrant搭建本地python开发环境
使用Vagrant搭建本地python开发环境 关于vagrant:Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境,它使用Oracle的开源VirtualBox虚拟化系统也可以使 ...
- docker-swarm建立本地集成开发环境
在k8s出现之后,docker-swarm使用的人越来越少,但在本地集成开发环境的搭建上,使用它还是比较轻量级的,它比docker-compose最大的好处就是容器之间的共享和服务的治理,你不需要li ...
- 使用Git下载Hadoop的到本地Eclipse开发环境
使用Git下载Hadoop的到本地Eclipse开发环境 博客分类: Hadoop *n*x MacBook Air hadoopgitmaveneclipsejava 问题场景 按照官网http: ...
- 使用 docker 部署常用的开发环境
使用 docker 部署常用的开发环境 Intro 使用 docker,很多环境可以借助 docker 去部署,没必要所有的环境都在本地安装,十分方便. 前段时间电脑之前返厂修了,回来之后所有的软件都 ...
- 【Yeoman】热部署web前端开发环境
本文来自 “简时空”:<[Yeoman]热部署web前端开发环境>(自动同步导入到博客园) 1.序言 记得去年的暑假看RequireJS的时候,曾少不更事般地惊为前端利器,写了<Sp ...
- windows部署React-Native的开发环境实践(技术细节)
前情摘要 众所周知,有人说.net可以用Xamrian,呵呵,不习惯收费的好么?搞.Net的人设置一次java的环境变量,可能都觉得实在太麻烦了,可能是因为这些年微软确实把我们给带坏了,所有东西一键安 ...
- 超实用!!!使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器
最近看到阿里云发布了一款名为 Alibaba Cloud Toolkit 的插件,可以帮助开发者高效开发并部署适合在云端运行的应用,瞬间击中了我的小心脏,这个对于个人开发者来说超级棒啊,终于不需要再手 ...
- Vagrant - 打造跨平台的一致开发环境
官网 参考资料 借助 Vagrant ,可以使用 Vagrantfile 文件自动化虚拟机的安装和配置流程,方便快速的打造跨平台的统一开发环境. 1. Vagrant 是啥 Vagrant 用于构建及 ...
随机推荐
- js通俗易懂的&&与||或运算
使用&&将返回第一个条件为假的值. 如果每个操作数的计算值都为true, 则返回最后一个计算过的表达式. let one = 1, two = 2, three = 3;console ...
- Java 面向对象(四)继承
一.继承的概述(Inherited) 1.由来 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 其中,多个类可以称为 子类(派生类 ...
- git remote 使用总结
使用场景:新建一个git仓储并与远程关联 1.初始化一个新的空的git仓储,并在仓储下做一些改动 mkdir gitDir cd gitDir/ git init touch file git sta ...
- 安卓已过时的ProgressDialog对话框
private ProgressDialog mDialog; private Handler mHandler; //初始化Handler //初始化 mDialog = new ProgressD ...
- MySQL之Text Protocol
1)[01]COM_QUIT 告诉服务器,客户端想要关闭连接 返回:或者关闭一个连接或者一个OK_Packet 有效负载: 1 [01]COM_QUIT 字段: command(1)--0x01 CO ...
- 集成IDE anaconda
Anaconda 下载安装完anaconda后,会生成如下工具: 安装Anaconda不需要使用管理员权限.安装完毕后,Anaconda附带一个图形启动器(Anaconda Prompt),可以使用他 ...
- centos7误删yum源的解决办法 ( -bash: yum: command not found)
这里以安装阿里的yum源为例: 1.查看自己的centos版本 cat /etc/redhat-release 2.进入阿里云源站地址:http://mirrors.aliyun.com/centos ...
- Exams(二分
题意:给你每天要考的科目,和每门科目需要复习多长时间,问最少需要几天才能完成所有的考试. 思路:二分答案,然后判断答案是否可行,这边需要进行贪心,即倒着往前推, 比如第i天,那么前面有i-1天是,可供 ...
- 【二进制优化-多重背包】zznu-oj-2120 : 安详--如何用尽钱币打赏主播获得最大好感度
2120 : 安详 题目描述 spring最近喜欢上了B站新秀主播,身为顿顿吃黄焖鸡的土豪,当然要过去打赏一番,但是spring还是喜欢精打细算,所以在打赏的时候,想要掏出有限的钱,获得主播的最大好感 ...
- 201871010111-刘佳华《面向对象程序设计(java)》课程学习总结
201871010111-刘佳华<面向对象程序设计(java)>课程学习总结 课程学习总结(45分) 经历了一个学期的<面向对象程序设计>课程学习,请每位同学完成以下任务: 点 ...