首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP-建立虚拟环境

在开发和线上阶段使用不同的系统运行环境的话, 经常会遇到各种各样的 BUG, 并且在团队开发的时候, 让所有成员都保持使用最新版本的软件和类库, 也是一件很让人头痛的事情.

如果你是在 Windows 下开发, 线上环境是 Linux (或者别的非 Windows 系统) 的话, 或者团队协同开发的时候, 建议使用虚拟机.

除了大家熟知的 VMware 和 VirtualBox 外, 还有很多工具可以让你快速, 轻松的用上虚拟环境.

Vagrant 简介

Vagrant 可以让你使用单一的配置信息来部署一套虚拟环境, 最后打包为一个所谓的 box (就是已经部署好环境的虚拟机器). 你可以手动来安装和配置 box, 也可以使用自动部署工具, 如 Puppet 或者 Chef .

自动部署工具可以让你快速部署一套一模一样的环境, 避免了一大堆的手动的命令输入, 并且允许你随时删除和重建一个全新的 box, 虚拟机的管理变得更加简单.

Vagrant 还可以在虚拟机和主机上分享文件夹, 意味着你可以在主机里面编辑代码, 然后在虚拟机里面运行.

下面是一些其他的软件, 可以帮助你更好的使用 Vagrant:

Rove: 使用 Chef 自动化安装一些常用的软件, PHP 包含在内.

Puphpet: 简单的 Web 图形界面用来生成部署 PHP 环境的 Puppet 脚本, 此项目不仅可以用在开发上, 也可以在生产环境中使用.

Protobox: 是一个基于 vagrant 的一个层, 还有 Web 图形界面, 允许你使用一个 YAML 文件来安装和配置虚拟机里面的软件.

Phansible: 提供了一个简单的 Web 图形界面, 用来创建 Ansible 自动化部署脚本, 专门为 PHP 项目定制.

Docker 简介

Docker - 一个轻量级的虚拟化解决方案。Docker 为各种应用程序提供了 Linux 容器。 A container is a building block which, in the simplest case, does one specific job, e.g. running a web server. An “image” is the package you use to build the container - Docker has a repository full of them.

通常情况下,一个 LAMP 应用汇包含以下三个容器:一个 Web 服务器,一个 PHP-FPM 线程和 MySQL。在 Vagrant 的共享文件夹中,你不需要改变你应用文件路径,你只需要告诉 Docker 到哪里可以找到他们即可。

你可以通过命令行来生成容器,或者,为了更好的维护,为你的项目构建一个 docker-compose.yml 文件来配置生成容器的规则和容器的通讯规则。

Docker 在多网站要求不同运行环境的情况下尤其趁手,你可以在一台机器上运行多个 Docker 虚拟主机,他们将会运行在完全不同的环境中,使用不同的 Web 服务,并且不管在内存共享、硬盘空间、或者是 CPU 资源上,都能做到高效利用。这些虚拟机同时也指出秒寄重启。

例子: 在 Docker 里面运行 PHP 应用

在你成功 安装 Docker 后, 你只需要一步就可以安装 Apache + PHP.

下面的命令, 会下载一个功能齐全的 Apache 和 最新版本的 PHP, 并会设置 WEB 目录 /path/to/your/php/files 运行在 http://localhost:8080:

docker run -d --name my-php-webserver -p 8080:80 -v /path/to/your/php/files:/var/www/html/ php:apache

This will initialize and launch your container. -d makes it runs in the background. To stop and start it, simply run docker stop my-php-webserver and docker start my-php-webserver (the other parameters are not needed again).

END

最后,如果你也喜欢以上文章教程

就关注一波吧

关注下方微信号

获得更多学习与交流

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180724B0ZHEJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券