这篇文章介绍的项目地址:https://github.com/EthanCai/php-dev-vm
简介
php-dev-vm
可以帮助快速构建PHP
虚拟机开发环境。你也可以修改Vagrantfile
,定制自己的PHP
虚拟机开发环境。
解决什么问题
多人团队开发环境不同步一般带来如下问题:
- 不同电脑上单独安装配置占用时间,后续解决环境配置、依赖等问题也会占用较多工作时间,团队越大问题越突出
- 没有标准安装、配置步骤,不同工程师水平不一致,每次环境配置的最终结果可能不一致,最终导致开发时存在潜在调试、运行等问题,解决办法也无法快速在团队中应用
- 环境安装配置对新人是障碍,耽误熟悉业务代码时间,资深工程师帮助新人配置环境也占用时间
- 开发环境后续调整、同步也是障碍
做什么 - 为什么使用VM,而不是Docker
如果能够实现自动化的构建开发环境,通过指定的分发机制同步开发环境配置,就可以很好解决以上问题。
通过Vagrant
这个工具自动化构建开发环境虚拟机镜像,将开发环境需要的软件、配置打包到镜像中,然后通过Rsync
或者FTP
分发镜像,可以实现这一点,满足我们的需求。
至于为什么不使用 PHP Docker镜像,是因为目前生产环境中PHP程序运行在虚拟机中,迁移不是短时间就能完成的事情。
怎么做 - 使用Vagrant
制作PHP虚拟机开发环境
可以通过本项目快速构建PHP虚拟机开发环境。
依赖软件
- macOS Sierra Version 10.12.5
homebrew
vagrantup
virualbox
安装依赖Vagrant Box
Install CentOS 7.2 box
1 | > vagrant box add "CentOS-7.2-x64" https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box |
如何构建PHP开发环境Vagrant Box
构建php-dev-vm-5.6.30.box
编写Vagrantfile
:
见这里
构建Vagrant Box
:
1 | > # start vm |
如何使用Vagrant Box启动PHP开发环境虚拟机
使用 php-dev-vm-5.6.30.box
1 | > # build php-dev-vm-5.6.30.box or download box from ftp://10.75.87.202/php-dev-vm-5.6.30.box (get the url from Ethan if not available) |
References
- Vagrant: https://www.vagrantup.com/docs/index.html
- Discover Vagrant Boxes
- Nginx配置
- PHP-FPM配置
- PHP Function Reference/扩展列表
- Debugging with PhpStorm