
最近发现大家的 php 运行环境挺乱的,每个入职的同事都要配置一遍,而且有时候因为配置不一致导致一些环境差异的问题,对于如何把每个开发人员的代码通过本来开发好后,在内网运行,大家有没有好的解决方案?
1 ZXCDFGTYU May 8, 2017 via iPad vagrant |
2 springload OP @ZXCDFGTYU vagrant 每个人在本地配置一个么? |
3 cncqw May 8, 2017 @springload 每个人在本地安装一个,然后用统一的包 |
4 springload OP @cncqw 你控制不了每个人去修改这个包呢,所以我就想能不能通过内网服务器运行代码,每个人的代码映射到内网服务器上 |
5 ericliu001 May 8, 2017 via iPhone vagrant 将初始化好的环境打个包呗,来新同事直接用。 内网服务器也可以,人多的话可能性能要求高一点。 |
6 billlee May 8, 2017 @springload #4 你们没有测试工程师吗?在测试环境跑不通就提 bug 让重写啊。 |
7 springload OP @billlee 有测试工程师,但是我是希望将问题暴露在开发阶段而不是暴露在测试阶段 |
8 billlee May 8, 2017 @springload #7 有些问题要靠规章制度解决,既然提供了统一的 vagrant 环境,那就不能私自改,要改的就要一起提交进版本控制里面。 |
9 springload OP @billlee 我主要想实现两个功能:1.开发环境的一致性,2.新来的人只需要安装个编辑器就可以开发了 环境都不用配置的 |
10 jellybool May 8, 2017 > 1.开发环境的一致性 目前我觉得最好的解决方案就是 Vagrant > 2.新来的人只需要安装个编辑器就可以开发了 环境都不用配置的 据我所知,目前还没有这么好的解决方案。 v 友知道有这么好的话,可以告知一下。 |
11 czzhengkw May 8, 2017 @jellybool 开发环境 Vagrant,PHPSTORM 配置导入,host 也可以统一管理,但是人就没法标准化了…… 每个开发都有自己的习惯,写出来的代码都带有自己的风格,统不统一就看管理者要不要管了…… 编码规范+分层规范+Code Review …… 能做的也就这些了…… |
12 vebuqi May 8, 2017 docker 可以吗? |
13 dawniii May 8, 2017 @jellybool Vagrant 有两次弄失望了 就没再用了。第一次是 1.8.X 具体哪个版本忘记了,add box 硬是不行,换个版本就好了。第二次是 1.9.x 具体版本也记不清楚了,我把我的环境打包给同事用,也是怎么弄都用不了。。。 最后还是图形化弄虚拟机方便,配置东西就是点点鼠标。也能共享。。。 |
14 gouchaoer May 8, 2017 via Android php 的环境那么简单没必要强求。。。给人找麻烦干嘛 |
15 orderc May 8, 2017 via iPhone 用 vagrant |
16 gouchaoer May 8, 2017 via Android 规定 php 的版本,规定要装的扩展,完了 |
18 run2 May 8, 2017 Homestead (基于 vagrant) |
19 odirus May 8, 2017 vagrant 用了一年多后放弃了。。。有几次重要关头就是开不了机,然后就用内网 Linux + samba 的方式进行开发了 |
20 ryd994 May 8, 2017 via Android 环境代码化 上 docker,dockerfile 上版本控制 提测指定 dockerfile 版本 这就是个 ci 的需求 小团队公共服务器,要什么包统一管理,留档记录。实际上如果团队成员都了解 docker 的话最后还是 docker 方便 |
21 kasp May 8, 2017 via Android 单独一台内网机器,运行环境数据库使用这台内网机器;通过 samba 挂载每个机子的开发目录。 |
22 jellybool May 8, 2017 |
24 realpg PRO 公网服务器…… 所有版本库都在公网 |
25 ibegyourpardon May 8, 2017 @realpg 其实公网服务器也有好处…… |
26 zhengxiaowai May 8, 2017 服务器用 AWS 全是美东的,没办法只能在本地 |
27 ranwu May 8, 2017 vagrant 用一年了,表示还没遇到什么问题。 |
29 flowerains May 8, 2017 如果是 PHP,感觉没必要这么强求,5.7 和 7 还没差异大到代码不兼容 如果是代码报错或者有安全问题,那本地和线上都是一样的 本地环境和线上有差异的 只有性能这块的 |
30 johnlui May 8, 2017 必须是开一台跟生产环境一样的云服务器啊,然后用 sftp 开发,实测效率不是一般的高:开发效率没有降低,上线 bug 几率极大降低。 |
31 loveyu May 8, 2017 phpstorm 设置为指定的兼容版本,如果能消灭全部警告和提示,即使代码直接线上跑又如何。当然和问题没啥关系了,结果还是得看代码质量了 |
32 czzhengkw May 8, 2017 @johnlui 我觉得用云服务器、内网服务器还是本地服务器,跟 bug 几率关系不大…… 跟人的关系大…… 你开发连生产库?内测连生产库? 肯定都是连测试库…… 还有,用本地服务器,做目录映射,决不会出现 sftp 漏传的问题…… PHPSTORM 即使开了自动上传的功能,在拉代码的时候还是会出现漏传的问题…… |
33 msg7086 May 8, 2017 为什么要控制人不让人修改包? 要是因为包版本不同了就出 Bug,你希望总是用同一个版本的包,隐藏 Bug,等以后环境更新平台升级的时候炸一脸么…… 用 Vagrant 的目的是省下环境配置的时间,而不是禁止开发者用不同的包去试跑代码。 |
34 springload OP @msg7086 其实不是禁止开发者用不同的包去试跑代码,主要是要和生产环境高度一致的问题 |
35 zhs227 May 9, 2017 vagrant + provisioning,或者直接 pack 好 vagrant 镜像,保证每个人 vagrant up 的时候环境都是一样的。 vagrant 除了 vboxfs 的权限上稍微有差异以外,其它和真实环境还真是没有太大差别。 |
36 msg7086 May 9, 2017 @springload 高度一致的话,重新引导一个 VM 就好了,你 4 楼的理由站不住脚啊。 |
37 Weny May 9, 2017 via iPhone docker +1 内网有服务器可以在服务器内建 docker 服务 |
39 U7Q5tLAex2FI0o0g May 9, 2017 一台 linux 服务器,每个人开设一个账号,每个人的 home 目录下管理自己的代码,putty 连接,vim 编码。 那么环境就统一了。 |
40 glogger May 9, 2017 环境要求: Apache 2.4.25 PHP 5.6.30 来了新人给 2 个小时时间配置环境。连环境都配置不好,直接走人就可以了。 |
41 ZXCDFGTYU May 9, 2017 @springload 每个人本地配一个。之前的时候用过 samba 做同步,但是有的时候不知道为什么会发生 PHPSTORM 索引特别慢的问题。后来换了 vargent 就好多了,目前还没出过什么问题 |
42 wingoo May 9, 2017 搞个开发机就行了 |
43 freeminder May 9, 2017 php storm 可以同步代码到 sftp,找一台服务器,每个人进来就创建新的代码目录,vhost,下发 ssh 账号就行了。其实不是特别灵活。运行时环境和开发环境分开,用什么办法估计都舒服不了,解决的只是环境初始化问题,解决不了运行中问题,比如调试什么的。个人看法,还是优化环境在个人机器上的初始化比较好,毕竟就像楼上说的,配置环境也是一个试用考验。如果新人装的环境总是出小问题,多想想自己的文档是不是写的有问题,毕竟表达和被理解是表达方的义务。 |
44 lianxiaoyi May 9, 2017 那你只有打包一个镜像 新员工电脑装系统时必须用这个镜像。。。。。。 |
45 rozbo May 9, 2017 难道不都是用 docker 的吗!!!! |
46 cst4you May 9, 2017 hyperv 的 debian 里, 然后 samba 给 windows 写代码 |
47 chuangbo May 9, 2017 用 docker |
48 vus520 May 9, 2017 docker |
49 thankuu May 9, 2017 docker,之前也用 Vagrant,但是事实证明 docker 更优 |
50 king2014 May 9, 2017 一直用 docker 配置好环境生成镜像就行,同一用这个镜像 |
51 ahkxhyl May 9, 2017 一直在用 vagrant 但是 docker 没研究成功 各种问题 坑!~ |
52 Light3 May 9, 2017 我这个 low b 觉得 如果是 Windows 你找好 wamp 然后把你现在用的需要加的扩展仍里面 就好了.. |
53 luoer May 9, 2017 内网搭好多虚拟机 每个人分配一个 把环境都调成一样的不就好了么 或者用 docker |
54 sun019 May 9, 2017 docker |
55 iCantus May 9, 2017 docker |
56 killerv May 9, 2017 之前是用的 vagrant,但是有很大几率无法开机,太折腾了,后来换了 docker,基本上没有出过问题。 |
57 springload OP @glogger 流弊 |
58 xttanwei May 9, 2017 内网搭建一台开发机器, PHPStrom 的自动保存上传,简直良心! https://ooo.0o0.ooo/2017/05/09/591167c47b660.png |
59 youngyezi May 9, 2017 1.以前有用过在内网配置统一环境,然后让开发者共享一个目录挂载到开发机上。 2.现在用 vagrant |
60 tagtag May 9, 2017 推荐 docker,搞不懂 dockerfile 直接在容器里部署一套环境,保存为镜像就行了,一人一套,绝对都一样,而且部署速度还快,资源占用也 OK,而且让大家学学 docker 也算是个技术储备吧,毕竟现在来看 docker 似乎发展的还可以。 |
61 to2false May 9, 2017 docker,用 docker-compose 分分钟 KO,简单粗暴 |
64 hellokittyer May 10, 2017 vbox+共享目录感觉挺方便的 |