zhangfeiwudi
0.01D
V2EX  ›  PHP

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

  •  
  •   zhangfeiwudi · Mar 30, 2018 · 6262 views
    This topic created in 2991 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

    为什么有这么多模式是语言发展的过程中为了适应不同需求从而出现的东西。
    典型的:
    cli 可以用来编写常驻内存程序。
    cgi 模块与 nginx 配合使用
    apache_model 模块与 apache 配合使用。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2942 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 267ms · UTC 12:51 · PVG 20:51 · LAX 05:51 · JFK 08:51
    ♥ Do have faith in what you're doing.