V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skyworker
V2EX  ›  PHP

Linux 下的二进制 PHP 集成环境有用过的吗?

  •  
  •   skyworker · 2020-02-17 12:16:18 +08:00 · 3751 次点击
    这是一个创建于 1728 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT, 非 lnmp 那种 下载源码后编译安装 或 通过 apt/yum 安装的. 需要能直接运行的的集成环境(原因? 例如 linux 服务器是内网,无法下载源码或者 apt)

    zbox( http://devel.cnezsoft.com/page/zbox.html) 正好是我们需要的, 不过内置的 PHP 和 mysql 版本太低(php7.2 以上, mysql5.7 以上), 所以暂时没法用
    16 条回复    2020-02-17 20:52:43 +08:00
    msg7086
        1
    msg7086  
       2020-02-17 12:39:02 +08:00
    你的意思是 docker 或者虚拟机吗。
    skyworker
        2
    skyworker  
    OP
       2020-02-17 12:47:34 +08:00
    也非 docker 或者虚拟化, 类似 zbox 那种, 下载后包含二进制的 PHP/Apache/Mysql 服务端, 直接运行即可
    salamanderMH
        3
    salamanderMH  
       2020-02-17 12:50:07 +08:00
    写个脚本就可以了吧,以前弄的 https://github.com/salamander-mh/LnmpShell

    现在也都用 docker 了
    manami
        4
    manami  
       2020-02-17 13:17:15 +08:00
    emm 推荐不用编译的 xampp。可以直接在 xampp 官网下载 linux 版本的.run 文件上传安装,比较新的 php 版本都有,一直在用我觉得很方便……
    https://www.apachefriends.org/index.html
    msg7086
        5
    msg7086  
       2020-02-17 13:18:10 +08:00   ❤️ 4
    二进制的程序都有依赖项,最少最少也要依赖 glibc,你要新版的软件环境,那自然要新版的 glibc,然而目标操作系统可能并没有这么新的版本,于是就造成了矛盾。

    那么解决这个问题也很简单,那就是把操作系统也集成在里面,自带 glibc,只要内核版本差异不太大( 3.2 到 5.4 都能跑),就可以跑起来。

    这种就是我们以前也经常用的 chroot 大法,用 debootstrap 把操作系统装在目录里面,然后在里面装上软件,打个包就能带走,解压 chroot 进去就能启动服务了。

    后来有个软件把这个东西又升级了一下,这个软件就是 docker 了。

    要在不用 docker 的情况下实现这样一个东西,大致上你就是在重新发明一遍 docker。
    zjsxwc
        6
    zjsxwc  
       2020-02-17 13:51:50 +08:00 via Android
    我选择默认的 apt 方式
    cabing
        7
    cabing  
       2020-02-17 13:55:54 +08:00
    前面都说了 docker

    写一个 docker 脚本。和你工作组的所有人都可以用。
    ipwx
        8
    ipwx  
       2020-02-17 14:02:49 +08:00
    docker 可以导出镜像为本地文件,然后再导入。你想办法在没联网的环境里面装好 Docker 引擎,然后你就可以用你随便啥机器制作一个 Docker 镜像,拷贝过去,就能用了。这是最简单的途径。不然有的你折腾的。
    yiran0
        9
    yiran0  
       2020-02-17 14:19:43 +08:00
    我还真这么干过,我当时的内网环境是 suse11,不升内核根本不用想什么 docker,软件源也没啥可用。我是一个个编译过去的,哎……现在想起来有种身在依赖地狱的感觉。不过如果你的系统版本足够好,软件源足够完全,可以在外面同环境 apt/yum 装一遍,同时下载依赖安装文件,放到里面安装就可以啦……
    hoyixi
        10
    hoyixi  
       2020-02-17 14:36:03 +08:00
    如果没有网络,使用 Linux 会是件非常痛苦的事情
    westoy
        11
    westoy  
       2020-02-17 14:47:33 +08:00
    他这个其实有一点问题,mysql 是多协议授权, 集成包里预打包 mysql binary 需要购买授权, 也就是说这种自带式集成包可能被 oracle 法务盯上, 当然你拿来用应该没什么问题......
    LokiSharp
        12
    LokiSharp  
       2020-02-17 15:49:41 +08:00
    用 CentOS 然后用最新的完整镜像做个源就好了
    iyaozhen
        13
    iyaozhen  
       2020-02-17 16:35:41 +08:00   ❤️ 1
    这都是上个世纪的做法了
    如果你们系统统一自己做个自动安装脚本就行,可以编译的依赖时候固定目录,这样就可以二进制文件到处 copy 了
    zjyl1994
        14
    zjyl1994  
       2020-02-17 18:55:37 +08:00
    docker 就行了,可以自己搭建内网的 docker 镜像,从公网下了 docker 镜像弄进去就行了
    fox0001
        15
    fox0001  
       2020-02-17 19:36:55 +08:00 via Android
    @zjyl1994 #14 赞成~

    或者下载安装包,拷贝到服务器上执行安装
    berrx
        16
    berrx  
       2020-02-17 20:52:43 +08:00
    homestead?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2612 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:19 · PVG 13:19 · LAX 21:19 · JFK 00:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.