大家的 PHP 运行环境是在本地还是内网服务器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
springload
V2EX    PHP

大家的 PHP 运行环境是在本地还是内网服务器

  •  
  •   springload May 8, 2017 8043 views
    This topic created in 3276 days ago, the information mentioned may be changed or developed.

    最近发现大家的 php 运行环境挺乱的,每个入职的同事都要配置一遍,而且有时候因为配置不一致导致一些环境差异的问题,对于如何把每个开发人员的代码通过本来开发好后,在内网运行,大家有没有好的解决方案?

    66 replies    2017-05-15 09:44:50 +08:00
    ZXCDFGTYU
        1
    ZXCDFGTYU  
       May 8, 2017 via iPad   1
    vagrant
    springload
        2
    springload  
    OP
       May 8, 2017
    @ZXCDFGTYU vagrant 每个人在本地配置一个么?
    cncqw
        3
    cncqw  
       May 8, 2017
    @springload 每个人在本地安装一个,然后用统一的包
    springload
        4
    springload  
    OP
       May 8, 2017
    @cncqw 你控制不了每个人去修改这个包呢,所以我就想能不能通过内网服务器运行代码,每个人的代码映射到内网服务器上
    ericliu001
        5
    ericliu001  
       May 8, 2017 via iPhone
    vagrant 将初始化好的环境打个包呗,来新同事直接用。
    内网服务器也可以,人多的话可能性能要求高一点。
    billlee
        6
    billlee  
       May 8, 2017
    @springload #4 你们没有测试工程师吗?在测试环境跑不通就提 bug 让重写啊。
    springload
        7
    springload  
    OP
       May 8, 2017
    @billlee 有测试工程师,但是我是希望将问题暴露在开发阶段而不是暴露在测试阶段
    billlee
        8
    billlee  
       May 8, 2017
    @springload #7 有些问题要靠规章制度解决,既然提供了统一的 vagrant 环境,那就不能私自改,要改的就要一起提交进版本控制里面。
    springload
        9
    springload  
    OP
       May 8, 2017
    @billlee 我主要想实现两个功能:1.开发环境的一致性,2.新来的人只需要安装个编辑器就可以开发了 环境都不用配置的
    jellybool
        10
    jellybool  
       May 8, 2017
    > 1.开发环境的一致性

    目前我觉得最好的解决方案就是 Vagrant

    > 2.新来的人只需要安装个编辑器就可以开发了 环境都不用配置的

    据我所知,目前还没有这么好的解决方案。

    v 友知道有这么好的话,可以告知一下。
    czzhengkw
        11
    czzhengkw  
       May 8, 2017
    @jellybool

    开发环境 Vagrant,PHPSTORM 配置导入,host 也可以统一管理,但是人就没法标准化了……

    每个开发都有自己的习惯,写出来的代码都带有自己的风格,统不统一就看管理者要不要管了……

    编码规范+分层规范+Code Review ……

    能做的也就这些了……
    vebuqi
        12
    vebuqi  
       May 8, 2017
    docker 可以吗?
    dawniii
        13
    dawniii  
       May 8, 2017
    @jellybool Vagrant 有两次弄失望了 就没再用了。第一次是 1.8.X 具体哪个版本忘记了,add box 硬是不行,换个版本就好了。第二次是 1.9.x 具体版本也记不清楚了,我把我的环境打包给同事用,也是怎么弄都用不了。。。
    最后还是图形化弄虚拟机方便,配置东西就是点点鼠标。也能共享。。。
    gouchaoer
        14
    gouchaoer  
       May 8, 2017 via Android
    php 的环境那么简单没必要强求。。。给人找麻烦干嘛
    orderc
        15
    orderc  
       May 8, 2017 via iPhone
    用 vagrant
    gouchaoer
        16
    gouchaoer  
       May 8, 2017 via Android
    规定 php 的版本,规定要装的扩展,完了
    billlee
        17
    billlee  
       May 8, 2017
    @dawniii #13 可以试试 docker
    run2
        18
    run2  
       May 8, 2017
    Homestead (基于 vagrant)
    odirus
        19
    odirus  
       May 8, 2017
    vagrant 用了一年多后放弃了。。。有几次重要关头就是开不了机,然后就用内网 Linux + samba 的方式进行开发了
    ryd994
        20
    ryd994  
       May 8, 2017 via Android
    环境代码化
    上 docker,dockerfile 上版本控制
    提测指定 dockerfile 版本
    这就是个 ci 的需求

    小团队公共服务器,要什么包统一管理,留档记录。实际上如果团队成员都了解 docker 的话最后还是 docker 方便
    kasp
        21
    kasp  
       May 8, 2017 via Android
    单独一台内网机器,运行环境数据库使用这台内网机器;通过 samba 挂载每个机子的开发目录。
    jellybool
        22
    jellybool  
       May 8, 2017
    @czzhengkw

    > 开发环境 Vagrant,PHPSTORM 配置导入,host 也可以统一管理

    我也觉得,对于环境,做得也就这些了。人当然就是最不确定因素
    jellybool
        23
    jellybool  
       May 8, 2017
    @dawniii

    我一直都是很顺利。。。。。
    realpg
        24
    realpg  
    PRO
       May 8, 2017
    公网服务器……
    所有版本库都在公网
    ibegyourpardon
        25
    ibegyourpardon  
       May 8, 2017
    @realpg 其实公网服务器也有好处……
    zhengxiaowai
        26
    zhengxiaowai  
       May 8, 2017
    服务器用 AWS 全是美东的,没办法只能在本地
    ranwu
        27
    ranwu  
       May 8, 2017
    vagrant 用一年了,表示还没遇到什么问题。
    realpg
        28
    realpg  
    PRO
       May 8, 2017
    @realpg #24
    不是有好处 是完全看不到一点坏处啊
    走哪里都能办公 走哪里都能用 测试环境高度与生产统一
    不会产生各个开发机的环境差异的问题
    flowerains
        29
    flowerains  
       May 8, 2017
    如果是 PHP,感觉没必要这么强求,5.7 和 7 还没差异大到代码不兼容

    如果是代码报错或者有安全问题,那本地和线上都是一样的

    本地环境和线上有差异的 只有性能这块的
    johnlui
        30
    johnlui  
       May 8, 2017
    必须是开一台跟生产环境一样的云服务器啊,然后用 sftp 开发,实测效率不是一般的高:开发效率没有降低,上线 bug 几率极大降低。
    loveyu
        31
    loveyu  
       May 8, 2017
    phpstorm 设置为指定的兼容版本,如果能消灭全部警告和提示,即使代码直接线上跑又如何。当然和问题没啥关系了,结果还是得看代码质量了
    czzhengkw
        32
    czzhengkw  
       May 8, 2017
    @johnlui

    我觉得用云服务器、内网服务器还是本地服务器,跟 bug 几率关系不大……

    跟人的关系大……

    你开发连生产库?内测连生产库?

    肯定都是连测试库……

    还有,用本地服务器,做目录映射,决不会出现 sftp 漏传的问题……
    PHPSTORM 即使开了自动上传的功能,在拉代码的时候还是会出现漏传的问题……
    msg7086
        33
    msg7086  
       May 8, 2017
    为什么要控制人不让人修改包?
    要是因为包版本不同了就出 Bug,你希望总是用同一个版本的包,隐藏 Bug,等以后环境更新平台升级的时候炸一脸么……
    用 Vagrant 的目的是省下环境配置的时间,而不是禁止开发者用不同的包去试跑代码。
    springload
        34
    springload  
    OP
       May 8, 2017
    @msg7086 其实不是禁止开发者用不同的包去试跑代码,主要是要和生产环境高度一致的问题
    zhs227
        35
    zhs227  
       May 9, 2017
    vagrant + provisioning,或者直接 pack 好 vagrant 镜像,保证每个人 vagrant up 的时候环境都是一样的。
    vagrant 除了 vboxfs 的权限上稍微有差异以外,其它和真实环境还真是没有太大差别。
    msg7086
        36
    msg7086  
       May 9, 2017
    @springload 高度一致的话,重新引导一个 VM 就好了,你 4 楼的理由站不住脚啊。
    Weny
        37
    Weny  
       May 9, 2017 via iPhone
    docker +1 内网有服务器可以在服务器内建 docker 服务
    xeneizes
        38
    xeneizes  
       May 9, 2017
    @czzhengkw codereview 啊,不符合规范的代码,不给 merge
    U7Q5tLAex2FI0o0g
        39
    U7Q5tLAex2FI0o0g  
       May 9, 2017
    一台 linux 服务器,每个人开设一个账号,每个人的 home 目录下管理自己的代码,putty 连接,vim 编码。
    那么环境就统一了。
    glogger
        40
    glogger  
       May 9, 2017
    环境要求:
    Apache 2.4.25
    PHP 5.6.30

    来了新人给 2 个小时时间配置环境。连环境都配置不好,直接走人就可以了。
    ZXCDFGTYU
        41
    ZXCDFGTYU  
       May 9, 2017
    @springload 每个人本地配一个。之前的时候用过 samba 做同步,但是有的时候不知道为什么会发生 PHPSTORM 索引特别慢的问题。后来换了 vargent 就好多了,目前还没出过什么问题
    wingoo
        42
    wingoo  
       May 9, 2017
    搞个开发机就行了
    freeminder
        43
    freeminder  
       May 9, 2017
    php storm 可以同步代码到 sftp,找一台服务器,每个人进来就创建新的代码目录,vhost,下发 ssh 账号就行了。其实不是特别灵活。运行时环境和开发环境分开,用什么办法估计都舒服不了,解决的只是环境初始化问题,解决不了运行中问题,比如调试什么的。个人看法,还是优化环境在个人机器上的初始化比较好,毕竟就像楼上说的,配置环境也是一个试用考验。如果新人装的环境总是出小问题,多想想自己的文档是不是写的有问题,毕竟表达和被理解是表达方的义务。
    lianxiaoyi
        44
    lianxiaoyi  
       May 9, 2017
    那你只有打包一个镜像 新员工电脑装系统时必须用这个镜像。。。。。。
    rozbo
        45
    rozbo  
       May 9, 2017
    难道不都是用 docker 的吗!!!!
    cst4you
        46
    cst4you  
       May 9, 2017
    hyperv 的 debian 里, 然后 samba 给 windows 写代码
    chuangbo
        47
    chuangbo  
       May 9, 2017
    用 docker
    vus520
        48
    vus520  
       May 9, 2017
    docker
    thankuu
        49
    thankuu  
       May 9, 2017
    docker,之前也用 Vagrant,但是事实证明 docker 更优
    king2014
        50
    king2014  
       May 9, 2017
    一直用 docker 配置好环境生成镜像就行,同一用这个镜像
    ahkxhyl
        51
    ahkxhyl  
       May 9, 2017
    一直在用 vagrant 但是 docker 没研究成功 各种问题 坑!~
    Light3
        52
    Light3  
       May 9, 2017
    我这个 low b 觉得 如果是 Windows 你找好 wamp 然后把你现在用的需要加的扩展仍里面 就好了..
    luoer
        53
    luoer  
       May 9, 2017
    内网搭好多虚拟机 每个人分配一个 把环境都调成一样的不就好了么 或者用 docker
    sun019
        54
    sun019  
       May 9, 2017
    docker
    iCantus
        55
    iCantus  
       May 9, 2017
    docker
    killerv
        56
    killerv  
       May 9, 2017
    之前是用的 vagrant,但是有很大几率无法开机,太折腾了,后来换了 docker,基本上没有出过问题。
    springload
        57
    springload  
    OP
       May 9, 2017
    @glogger 流弊
    xttanwei
        58
    xttanwei  
       May 9, 2017
    内网搭建一台开发机器,
    PHPStrom 的自动保存上传,简直良心!
    https://ooo.0o0.ooo/2017/05/09/591167c47b660.png
    youngyezi
        59
    youngyezi  
       May 9, 2017
    1.以前有用过在内网配置统一环境,然后让开发者共享一个目录挂载到开发机上。
    2.现在用 vagrant
    tagtag
        60
    tagtag  
       May 9, 2017
    推荐 docker,搞不懂 dockerfile 直接在容器里部署一套环境,保存为镜像就行了,一人一套,绝对都一样,而且部署速度还快,资源占用也 OK,而且让大家学学 docker 也算是个技术储备吧,毕竟现在来看 docker 似乎发展的还可以。
    to2false
        61
    to2false  
       May 9, 2017
    docker,用 docker-compose 分分钟 KO,简单粗暴
    tagtag
        62
    tagtag  
       May 9, 2017
    @xttanwei 这样同时编辑会有冲突吗?
    xttanwei
        63
    xttanwei  
       May 9, 2017
    @tagtag 隔离开啊
    hellokittyer
        64
    hellokittyer  
       May 10, 2017
    vbox+共享目录感觉挺方便的
    johnlui
        65
    johnlui  
       May 13, 2017
    @czzhengkw 其实我说的是环境不一致的问题,这才是最容易导致上线失败的问题。
    czzhengkw
        66
    czzhengkw  
       May 15, 2017
    @johnlui

    作为一个合格的程序员,至少要有能力搭起一套能开始工作的环境……

    在开发中能知道线上环境和生产环境的差异也是基本要求吧……

    所以环境不一致不是上线失败的借口……

    当前提供环境一致能规避一些坑,但是真的有一致的环境吗?踩踩坑不是好事吗?
    About     Help     Advertise     Blog     API     FAQ     Solana     3218 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 188ms UTC 14:18 PVG 22:18 LAX 07:18 JFK 10:18 Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86