你们的服务器的 PHP 环境都是自己一个个配置的吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Kylinsun
V2EX    PHP

你们的服务器的 PHP 环境都是自己一个个配置的吗?

  •  
  •   Kylinsun 2017-04-18 20:08:57 +08:00 via Android 8787 次点击
    这是一个创建于 3099 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨天想更新一下 php 版本,根目录下有一个 aidata 的文件夹,里面的 php 版本一直都更新不了一直搞不明白为什么更新不了,请教一下各位有没有更新之法。

    现在项目运行环境:
    php5. 5.7
    apache 2.4
    50 条回复    2017-04-20 11:02:06 +08:00
    shiny
        1
    shiny  
       2017-04-18 20:12:32 +08:00   1
    用 Docker , 改个数字,重新构建下就完成升级了代码兼容性好的话。
    defunct9
        2
    defunct9  
       2017-04-18 20:16:58 +08:00 via iPhone   1
    是的,纯手动
    FYK
        3
    FYK  
       2017-04-18 21:03:25 +08:00   2
    ....到现在还不知道 PHP 的环境是指什么。

    买了云服务器就有 linux 系统了,然后自己安装的 nginx 和 mysql ,以及 php 。话说回来,现在讲起来都不知道自己当时具体是怎么做的了。。。。
    rekulas
        4
    rekulas  
       2017-04-18 21:12:13 +08:00   1
    docker 是正解 环境跟系统和代码隔离开就没那么多麻烦事了
    dsg001
        5
    dsg001  
       2017-04-18 21:17:57 +08:00   2
    懒, lnmp 一键安装
    flowerains
        6
    flowerains  
       2017-04-18 21:21:46 +08:00   1
    用 docker
    或者自己写个一键安装脚本
    maleigebi
        7
    maleigebi  
       2017-04-18 21:35:40 +08:00   1
    docker
    mokeyjay
        8
    mokeyjay  
       2017-04-18 21:41:35 +08:00   1
    lnmp.org 一键包
    DoraJDJ
        9
    DoraJDJ  
       2017-04-18 21:47:47 +08:00 via Android   1
    自己看教程一个个装的,包括后续的安全配置,期间也踩过一些坑。
    cxbig
        10
    cxbig  
       2017-04-18 21:48:36 +08:00   1
    Docker 有现成的 Image 用,求其次 Ansible/Chef/Puppet 也能在 Github 上搜到大堆的 roles 。
    solaro
        11
    solaro  
       2017-04-18 23:17:09 +08:00   1
    自己的 VPS 用 lnmp 一键包,懒
    公司项目生产环境自己配置,全部手动编译, php 一个 5.3.29 一个 7.1.3 , server 用 tengine ,都还算简单,因为都在阿里云上,不用配置什么鸡毛 mysql ,直接用 rds ,代码和数据库分离还是很好很安全的。
    gouchaoer
        12
    gouchaoer  
       2017-04-18 23:20:26 +08:00 via Android   1
    docker 方案最好,因为 php 可能被拿 webshell ,在 docker 里安全上好很多。。。源码放主机目录吧
    sagaxu
        13
    sagaxu  
       2017-04-18 23:23:40 +08:00   2
    给运维兄弟发个邮件就行了
    img src="https://cdn.v2ex.com/avatar/24c2/278e/71189_normal.png?m=1442725074" class="avatar" border="0" align="default" alt="Kylinsun" data-uid="71189" />
        14
    Kylinsun  
    OP
       2017-04-18 23:36:34 +08:00 via Android
    谢谢大家的回复, docker 有在折腾,最近项目需要做做一个用户体验比较好的搜索,找到了 elasticsearch 但是他要求的 php 版本比较高,需求还是挺急的。看来还是得手动重新配。
    vibbow
        15
    vibbow  
       2017-04-19 00:40:16 +08:00
    @gouchaoer 哈?
    PHP 跑 docker 里为啥会安全上好很多?
    难道在实际环境里有漏洞的,在 docker 里就没漏洞了?
    webshell 进去了,该改的文件照样能改,数据库账号密码该看到的不照样能看到。

    如果你是说多个网站隔离的问题的话,那普通环境也可以以用户隔离的。
    Linux 做起来可能相对比较麻烦, IIS 的话每个应用池可以设置跑在一个独立的虚拟用户下的。
    eoo
        16
    eoo  
       2017-04-19 00:45:15 +08:00 via Android
    PHP Nginx 其实....其实......还是挺好编译的 就是 mysql.....
    xiaoshangmin
        17
    xiaoshangmin  
       2017-04-19 00:45:36 +08:00 via iPhone
    lnmp 每次都是手动编译安装 就是爱折腾
    eoo
        18
    eoo  
       2017-04-19 00:46:34 +08:00 via Android
    @xiaoshangmin 能请教 mysql 的安装吗?
    iyaozhen
        19
    iyaozhen  
       2017-04-19 00:49:48 +08:00   1
    都挺好安装的。公司系统一样,直接 copy 就能用,依赖包安装在非系统目录(也不用 root 权限)。
    iRiven
        20
    iRiven  
       2017-04-19 00:56:51 +08:00 via Android   1
    用 apt 也只会用 apt
    fsgmhoward
        21
    fsgmhoward  
       2017-04-19 01:23:49 +08:00 via iPhone   1
    给运维发个短信五分钟后就有了
    lan894734188
        22
    lan894734188  
       2017-04-19 02:27:25 +08:00 via Android   1
    自己有系统镜像
    hiwower
        23
    hiwower  
       2017-04-19 07:54:53 +08:00   1
    。。。用的 mamp
    tilv37
        24
    tilv37  
       2017-04-19 08:41:37 +08:00   1
    我是自己用的, lamp 。。
    xbdsky
        25
    xbdsky  
       2017-04-19 08:45:04 +08:00   1
    bt 系统的飘过
    Kylinsun
        26
    Kylinsun  
    OP
       2017-04-19 08:46:59 +08:00 via Android
    @hiwower 什么鬼。
    torbrowserbridge
        27
    torbrowserbridge  
       2017-04-19 09:06:23 +08:00 via iPhone
    说 php 放到 docker 就变安全的,是来搞笑的吗
    RealLiuSha
        28
    RealLiuSha  
       2017-04-19 09:06:37 +08:00
    点一下 就完事了。。
    gouchaoer
        29
    gouchaoer  
       2017-04-19 09:07:39 +08:00 via Android
    @vibbow 哈?
    哈?
    蛤?
    跑 docker 里被拿 webshell 只能改 php 文件和 docker 的系统,发现被黑以后补了漏洞直接重启 docker 就完了。。。。如果 php 直接跑 host 里面的话,你无法确定 host 是否被黑,而且 host 跑了别的服务或者别的 php 项目,也容易被黑。。。普通 linux 下 php 工程隔离你来说说怎么做。。。
    Clarencep
        30
    Clarencep  
       2017-04-19 09:07:40 +08:00
    @vibbow docker 就像一个虚拟机。即使被人攻破拿到 webshell 也是在“虚拟机”里面操作对外面几乎没有影响。

    “难道在实际环境里有漏洞的,在 docker 里就没漏洞了? ” -- 当然 docker 里面还是会有漏洞,只是被“虚拟机”隔离了。

    “该改的文件照样能改” -- 这话就不对了, docker 在使用数据卷的时候可以映射为只读模式,从系统层面杜绝了被修改的可能性。

    “数据库账号密码该看到的不照样能看到” -- 虽然能看到,但是 PHP 里面用到数据库帐号应该采用专用帐号呀?给这个专用帐号限定个 IP 访问,即使攻击者拿到账号密码也很难利用。
    TangMonk
        31
    TangMonk  
       2017-04-19 09:07:47 +08:00 via Android
    docker 每次都要 build 不麻烦吗,而且 volume 也不好用啊
    ren2881971
        32
    ren2881971  
       2017-04-19 09:12:51 +08:00
    我用 oneinstack 觉得挺方便。。
    Felldeadbird
        33
    Felldeadbird  
       2017-04-19 09:19:31 +08:00
    自己编译。然后每个服务器同步一下镜像。升级的话,大概同时操作几台机器做同样事情。反正脚本都一致。源码都一致。
    musikar
        34
    musikar  
       2017-04-19 09:33:55 +08:00
    有洁癖,必须一个一个编译安装,今后考虑用 docker
    licheng527
        35
    licheng527  
       2017-04-19 09:35:33 +08:00
    哈哈,咱们小白只会一键安装
    hiwower
        36
    hiwower  
       2017-04-19 09:38:33 +08:00
    @Kylinsun 看错,我以为本地。。。服务器自然不可能
    JingKeWu
        37
    JingKeWu  
       2017-04-19 09:44:46 +08:00
    centos 服务器 yum 安装的
    collatz
        38
    collatz  
       2017-04-19 09:50:22 +08:00 via iPhone
    第一次手动安装调配好后 就写脚本 感觉就是像 office 在录宏。以后都直接脚本自动化安装加测试。

    Docker 不适合一些 shell 命令调用 就选择性使用
    wwqgtxx
        39
    wwqgtxx  
       2017-04-19 10:20:42 +08:00 via iPhone
    插个队问一下, docker 对 centos6 的古代内核支持到底怎样,会有什么功能上的限制么
    realpg
        40
    realpg  
    PRO
       2017-04-19 10:27:33 +08:00
    apt-get install php-......
    然后把配置文件各种适应性的拷一份 再处理一下特殊扩展啥的个体问题
    changwei
        41
    changwei  
       2017-04-19 10:47:42 +08:00 via Android
    我是直接 yum php* mysql*等等乱装一通。

    源码编译安装对于水平要求太高,因为你无法确保你的 linux 环境里面的 gcc 等编译器版本和教程的差异会导致什么后果。

    我试过一些云主机所谓的集成环境,光文档就写了很长,而且很多配置文件还改了路径,或者默认的一些设置做了过度优化导致出现不明不白的问题,找的也麻烦,有这么多时间我干脆就自己安装了。
    isCyan
        42
    isCyan  
       2017-04-19 11:19:26 +08:00 via Android
    ubuntu ondrej apt 全家桶
    branchzero
        43
    branchzero  
       2017-04-19 11:22:39 +08:00
    docker 或者上 remi 源
    xiaodongus
        44
    xiaodongus  
       2017-04-19 11:23:28 +08:00 via iPhone
    用的 amh
    jarlyyn
        45
    jarlyyn  
       2017-04-19 11:24:30 +08:00
    不要自己编译,出个安全补丁就搞大了,那是作死。

    要么官方源,要么 Docker 。
    Bardon
        46
    Bardon  
       2017-04-19 11:27:00 +08:00
    想不通,资源隔离,肯定增加安全性的啊?

    -v /path:/path:ro 只读 volumes 你攻破试试?

    一个站点一个容器,你跨站试试?

    重要性不同的库放不同的容器里跑,你拖全部库试试?

    这些难道不属于安全防范了?

    就说 php 这个宇宙第一脚本语言吧,那么写的再烂,也只会影响到它自己以及连接的库,而不会影响到 host 上其他容器的资源。

    应该这么说, docker 会增加安全系数,而且还不小。
    sun019
        47
    sun019  
       2017-04-19 12:20:04 +08:00
    上 docker 吧
    hj2002007
        48
    hj2002007  
       2017-04-19 18:56:32 +08:00
    呵呵呵呵呵呵,我用源代码安装过,日本人的项目 要使用 5.3 的 php 另外 apache , mysql 等 还有各种开源模块全部指定了版本了, centos6.5 yum 安装基本没法搞 只有自己源代码编译了,过程就是难受的要死,各种依赖,各种编译不过,最后花了几天终于搞好了 泪流满面,后来 日本人来中国,帮我们又搭了一次环境, 我们吹牛说 我们一天搞定,他们一副“你们好厉害的表情”。。。。。。
    lights
        49
    lights  
       2017-04-19 20:47:33 +08:00
    用自动化运维平台,一键下发配置包
    lands
        50
    lands  
       2017-04-20 11:02:06 +08:00
    配置好一台, 其他的都基于镜像...考虑到学习成本, docker 目前没上
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5505 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 01:28 PVG 09:28 LAX 18:28 JFK 21:28
    Do have faith in what you're doing.
    ubao 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