如何创建虚拟Web开发环境和服务器

在过去的几年中,Windows和Mac OSX作为对开发人员友好的操作系统一直在进步,但是每个Web开发人员确实需要在Linux的本机环境中工作。

本文将向您展示如何做到两全其美:为您的日常需求坚持使用稳定且对用户友好的Windows或OSX这样的OS,同时收获与生产代码在同一生态系统中进行开发的好处。

许多Web都在开发人员称为“ LAMP堆栈"上运行。此首字母缩写词表示Linux,Apache,MySQL,PHP捆绑在一起,可以像通常作为Web服务器那样理解。 (一个紧密相关的堆栈(或一组技术)是“ LEMP",其中的“ E"源自Apache的替代名称Nginx的发音,也就是“ engine x"。)

您可能会注意到Linux已明确包含在此处,但不仅仅是因为这个原因,开发人员推荐使用Linux。其他技术(Apache(或Nginx),MySQL和PHP)都具有适用于不同平台的不同工具和实现,但是由于历史和技术原因,基于Linux的配置在服务器空间中占主导地位,并且往往更具可预测性。

可预测性和可靠性也是您要在仅用于该目的的操作系统上开发的主要原因-一种专用的操作系统,而不是支持您每天执行大量任务的操作系统作为Web开发人员的基础。换句话说,您不想在安装新图形驱动程序的计算机或重新打包并放进背包的计算机上运行时需要重启的服务器。路。简而言之,涉及在混合用途计算机上运行服务器所需的过程和软件是很麻烦的。

因此,如何平衡多任务处理能力和本机开发需求应用程序的上下文?

输入虚拟机。

虚拟机是在主操作系统中运行的程序。它们有效地使您可以在窗口内运行完全独立的操作系统,该窗口与物理机所发生的其他事情完全独立且完全独立,但是以一定的开销为代价。

但是,优点是很多:

  • 在安装,配置或删除软件时出错?没什么大不了的,您只需重新创建一个新映像即可。
  • 您的实验是否灾难性地失败了并冻结了操作系统?同样,这不是问题,因为仅影响虚拟机。
  • 您是否需要在略有不同的条件下进行迭代?每组条件,例如不同的软件版本或不同的软件(例如,使用Apache与Nginx进行比较),都可以成为独立的软件机器或虚拟“盒子"。

    Let’s get a virtual machine provider and Vagrant before we configure a base box.

  • 请确保您具有操作系统的虚拟机提供程序,而无需使用GUI来操作虚拟机,而只能通过命令行界面(CLI)。 Windows和Mac OSX都可以使用Virtual Box。 VMware也可以在两个平台上运行。 (Windows 10 Pro及更高版本可以使用Hyper V,这是一个升级,因为它可以更好地利用硬件。)
  • 访问Vagrantup.com并选择合适的安装程序。
  • 在本地目录树结构,新建一个文件夹以容纳该框。 (从属于您的用户配置文件的位置可以正常工作,而在系统目录中的位置通常无法正常工作。)
  • 这就是自动化的魔力发生的地方:名为PuPHPet的工具凝聚了GUI,完成了选择和配置过程LAMP中常用的软件,甚至超出了此功能,它增加了对服务器端语言(如Ruby和Node.js)的支持(技术上JavaScript并非纯粹是服务器端,而是多种),并替代了LAMP的其他组件

    PuPHPet makes base configuration files for Vagrant. The wizard includes over twenty different dimensions to configure, so I’ll only go over some of the most salient.

  • 部署目标-您可以在此处选择创建适用于VirtualBox,VMWare等的映像还是适用于云计算的映像
  • 系统>程序包-您可以在此处包含要安装的任何软件,就像在常规安装中一样。特别是,您应该包括OS发行版本中包含的用于开发的所有软件包。
    • 要包括Ubuntu的开发依赖项,请指定 build-essentials
    • 要在CentOS 7中包含相同的内容,请指定“开发工具"
    • Web服务器-选择Apache或Nginx来构成您的L(A | E)MP堆栈。
    • 语言-PHP,Ruby,Node.js,Python。
    • 数据库 —也许此方法最吸引人的功能之一是能够构建虚拟机以与可用的各种数据库一起运行的能力。虽然MySQL是默认设置,但您可能希望使用像MariaDB这样的较新版本。
    • 其余选项有些奇怪,如果您不知道它们是什么,则以后可以随时安装它们。 。毕竟,您所拥有的就是一个功能完善的操作系统。
    • PuPHPet将在此配置过程结束时生成一个存档。将其解压缩到您在配置新服务器的参数之前创建的目录。

      现在,执行以下操作:

      $ vagrant up

      并观察结果:

      Since you don’t have the base box in your local directory, vagrant will retrieve the image from the Atlas, a repository of pre-configured vagrant boxes.

      (从技术上讲,可以通过发出以下命令将其中任何一个添加到本地计算机: $ vagrant box add USER / BOX

      此时,您的VM已启动,您基本上是在线的。剩下的只有一件事:发出命令 $ vagrant ssh ,使您(无头的)VM充当LAMP服务器,使自己进入正确的SSH会话。恭喜!

      在这里,还有更多关于Vagrant的事情和要做的事,而且,正如您所知,要在您自己的开发场所中完成工作,无数个。请查看官方的《入门指南》,以了解我上次结束的地方。

      您是否曾经将VM用于自己的开发环境?您使用此设置还是采用其他方法?在下面的评论部分中分享您的想法!

  • 标签: 虚拟机 VirtualBox Web开发 Web服务器