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

为什么 PHP 要编译那么多模块

  •  
  •   zhangfeiwudi · 2018-03-30 17:10:26 +08:00 · 5671 次点击
    这是一个创建于 2448 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好像其他语言,比如说 安装 java 安装 nodejs 安装 c#的时候 都不需要编译 直接安装就好了 而 php 在编译的时候还得指定安装 各种模块 是否开启 关闭 编译好后再安装个第三方模块也老费劲了

    22 条回复    2018-04-01 10:37:52 +08:00
    GooMS
        1
    GooMS  
       2018-03-30 17:25:17 +08:00 via Android
    一切都是你自己的选择
    mikulch
        2
    mikulch  
       2018-03-30 17:28:35 +08:00
    我一直以为 php 不需要编译啊。
    hyq
        3
    hyq  
       2018-03-30 18:01:48 +08:00   ❤️ 2
    yum install php
    apt install php
    pacman -S php
    emerge php
    各个发行版都带了 php 的包,你为啥要自己编译
    g8287694
        4
    g8287694  
       2018-03-30 18:15:13 +08:00
    @hyq 确实要编译不过一般不是第三方的 ,也可以动态编译的

    @mikulch 重新安装 php 怎么不需要编译
    dobelee
        5
    dobelee  
       2018-03-30 18:40:14 +08:00 via Android
    因为模块启动后每次执行都会载入模块,避免不必要的性能消耗。
    kungfuchicken
        6
    kungfuchicken  
       2018-03-30 20:17:20 +08:00
    因为 PHP 就是个一堆 C 库的语法糖(逃~~)
    julyclyde
        7
    julyclyde  
       2018-03-30 21:18:45 +08:00
    这不是废话么
    因为需要用
    akira
        8
    akira  
       2018-03-30 21:54:49 +08:00
    那是因为其他的不提供编译而已。。 正常用 php 都是用发行版或者别人编译好的吧,我反正不会闲的蛋痛自己去编译
    checgg
        9
    checgg  
       2018-03-30 21:55:04 +08:00   ❤️ 1
    这个本来就是非常棒的一个功能。

    原生是提供的只是基础功能。

    扩展让 PHP 可以调用 C 编写模块的功能。
    msg7086
        10
    msg7086  
       2018-03-31 00:22:52 +08:00
    自己选的编译道路,还要怪别人?我就从来不编译 PHP,直接安装就好了,哪像你这么费劲。
    dangyuluo
        11
    dangyuluo  
       2018-03-31 00:36:17 +08:00
    自己选的路,跪着也要编译完。
    Luckyray
        12
    Luckyray  
       2018-03-31 01:16:01 +08:00 via iPhone
    是啊,我也很好奇为什么语言这么设计……就算不编译,想打开某个功能也得 apt-get ……而且什么 fpm,cli,apache 还有个线程安全版,分的好多啊。
    crist
        13
    crist  
       2018-03-31 01:49:06 +08:00
    自己编译了一次,包括 MySQL,花了我一天的时间处理各种错误。而现在,我只想装个集成好的,省事。
    qianmeng
        14
    qianmeng  
       2018-03-31 07:16:23 +08:00 via iPhone
    编译过一次,终于知道自己在这方面还有很长的路要走
    loginv2
        15
    loginv2  
       2018-03-31 07:42:44 +08:00
    可以适度定制,有些特定环境不需要那么多东西,那就可以去掉不用的部分,如果不给你选择 整体编译那就没办法了。不过正常使用建议用安装方案不要自己编译
    Cbdy
        16
    Cbdy  
       2018-03-31 08:08:21 +08:00 via Android
    Docker,大兄弟,别和时间过不去
    minininja
        17
    minininja  
       2018-03-31 09:42:38 +08:00
    没安装过 java.但是我用 yum 直接安装的
    MeteorCat
        18
    MeteorCat  
       2018-03-31 10:15:50 +08:00 via Android
    以前 PHP 仅仅做页面展示,没有什么弯弯绕绕;后来东西越来越多,什么模块都上来,这某些方面说明了社区的进步带来了大量模块追加更新,也说明了 PHP 模块挂载的方便性
    realpg
        19
    realpg  
       2018-03-31 10:30:31 +08:00
    @akira #8
    PHP 早年有一个神一般的场景 现在不知道还有没有了
    自己编译的 gd 库比用外面的多一个函数 那个函数还挺重要
    imagerotate
    wekw
        20
    wekw  
       2018-03-31 10:46:58 +08:00
    @realpg 老司机
    raphaelsoul
        21
    raphaelsoul  
       2018-03-31 13:42:52 +08:00
    我还是支持编译的 不会编译 php 的 是不可能对 php 深入了解的
    现在有了 docker 当你需要一些定制化的扩展 不还得写 dockerfile 指令? 不会编译根本无从入手
    checgg
        22
    checgg  
       2018-04-01 10:37:52 +08:00   ❤️ 2
    @Luckyray 你奇怪是因为你对这门语言不了解。只是单纯用所以一脸懵逼,其实很多 phper 都这样。

    cli cgi(fpm) apache_model 是 php 运行的三种模式。
    php 线程安全和非安全区别是 windows 下才有的东西。

    为什么有这么多模式是语言发展的过程中为了适应不同需求从而出现的东西。
    典型的:
    cli 可以用来编写常驻内存程序。
    cgi 模块与 nginx 配合使用
    apache_model 模块与 apache 配合使用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3173 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:42 · PVG 18:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.