V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
SolidZORO
V2EX  ›  问与答

php 與 php-fpm 調用的版本不一致,可以配置 php-fpm 指定某版本 php 嗎?

  •  
  •   SolidZORO · 2015-05-14 16:09:06 +08:00 · 8549 次点击
    这是一个创建于 3481 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因為有需求需要在PHP 5.3上做開發,然後。

    terminal看版本:

    PHP

    ➜  ~  which php
    /usr/local/bin/php
    
    ➜  ~  php -v
    PHP 5.3.29 (cli) (built: May 14 2015 15:36:13) 
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
    
    ➜  ~  /usr/bin/php -v
    PHP 5.5.20 (cli) (built: Feb 25 2015 23:30:53) 
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    

    PHP-FPM

    which php-fpm
    /usr/sbin/php-fpm
    
    ➜  ~  php-fpm -v
    PHP 5.5.20 (fpm-fcgi) (built: Feb 25 2015 23:31:06)
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    

    phpinfo().php

    PHP Version 5.5.20
    

    SHELL

    .zshrc配置:
    export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

    .bash_profile配置:
    export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:$PATH"


    任意地方 php -v的確是5.3的版本,為什麼php-fpm還是優先調用php5.5?不解。有什麼方法可以讓php-fpm指定調用某個版本的php嗎?

    27 条回复    2015-05-23 14:19:52 +08:00
    ooxxcc
        1
    ooxxcc  
       2015-05-14 16:16:47 +08:00
    你装了至少两套php啊

    mac + homebrew?

    brew install php53
    vibbow
        2
    vibbow  
       2015-05-14 16:16:49 +08:00
    IIS的话可以针对每个host设置不同的PHP版本
    Nginx应该也有地方设置的。

    不过Linux下搞版本共存目测比Windows下纠结的多......
    ooxxcc
        3
    ooxxcc  
       2015-05-14 16:18:02 +08:00
    /usr/bin/下是系统自带的
    /usr/local/bin/是homebrew安装的

    不知为何你安装的时候没带php-fpm
    SolidZORO
        4
    SolidZORO  
    OP
       2015-05-14 16:23:20 +08:00
    @ooxxcc 沒錯,是兩套php

    OSX Yosemite PHP ➜ /usr/bin/php (5.5)
    brew PHP ➜ /usr/local/bin/php (5.3)

    不過我shell配置是PATH="/usr/local/bin:/usr/bin/",那麼/usr/local/bin/php(5.3)要優於/usr/bin/php (5.5)被調用才對。

    難道是我理解不對?
    SolidZORO
        5
    SolidZORO  
    OP
       2015-05-14 16:26:34 +08:00
    @ooxxcc brew安裝的時候會自帶php-fpm嗎? 我的確在 /usr/local/bin/沒看到 php-fpm。我--with php-fpm編譯看看。
    coosir
        6
    coosir  
       2015-05-14 16:39:59 +08:00
    @SolidZORO 应该是
    OSX Yosemite PHP ➜ /usr/bin/php (5.3)
    brew PHP ➜ /usr/local/bin/php (5.5)
    SolidZORO
        7
    SolidZORO  
    OP
       2015-05-14 16:41:49 +08:00
    @vibbow 對啊!Windows上面應為就一個NT內核,一次編譯隨便跑。Linux/OSX下就比較苦逼了,所有東西都需要現場make。我不是老一輩的人,實在不能理解,brew雖好,但又不夠靈活,有個什麼freetype沒編譯,下次想patch上去還要再make一次⋯⋯
    SolidZORO
        8
    SolidZORO  
    OP
       2015-05-14 16:42:48 +08:00
    @coosir 不對,OSX Yosemite上自帶的就是5.5,我不需要那麼高的,所以要安裝5.3。
    coosir
        9
    coosir  
       2015-05-14 16:48:00 +08:00
    @SolidZORO 看错。。
    我是备份后直接软连接/usr/bin/php到我想要的php的(比如/usr/local/bin/php), 所以系统和我自己用的就一致了
    ooxxcc
        10
    ooxxcc  
       2015-05-14 16:50:31 +08:00
    @SolidZORO 程序内部的调用和你的PATH变量没什么关系吧,相对来说/usr/sbin/php-fpm调用同版本的/usr/sbin/php更合理

    重装一个就行了

    反正我用brew install php56得到的php附带php-fpm,5.3我就不清楚了
    ooxxcc
        11
    ooxxcc  
       2015-05-14 16:58:59 +08:00
    https://github.com/Homebrew/homebrew-php

    Installation

    Setup the homebrew/dupes tap which has dependencies we need:

    $ brew tap homebrew/dupes
    Setup the homebrew/versions tap which has dependencies we need:

    $ brew tap homebrew/versions
    Then, run the following in your command-line:

    $ brew tap homebrew/homebrew-php

    $ brew install php53
    SolidZORO
        12
    SolidZORO  
    OP
       2015-05-14 17:04:48 +08:00
    @ooxxcc 裝php53的確是這樣,但是53在brew上沒配php-fpm。我也懶得折騰了,用osx自己的php-fpm算了,然後把系統的php直接rm掉,ln -s 上brew的53。
    lijinma
        13
    lijinma  
       2015-05-14 17:15:25 +08:00
    @SolidZORO 你可以这样做的

    另外可以折腾下 phpbrew,哈哈哈哈哈
    ooxxcc
        14
    ooxxcc  
       2015-05-14 17:15:26 +08:00
    @SolidZORO ....你还是别折腾混用了,php-fpm不一定调用php的
    SolidZORO
        15
    SolidZORO  
    OP
       2015-05-14 17:16:42 +08:00
    @ooxxcc 的確不支持。
    ooxxcc
        16
    ooxxcc  
       2015-05-14 17:16:45 +08:00
    @SolidZORO 看了一下php53安装的时候有个--without-fpm的选项,所以默认带fpm的
    SolidZORO
        17
    SolidZORO  
    OP
       2015-05-14 17:16:56 +08:00
    @lijinma 好東西,謝謝,這就去try。
    SolidZORO
        18
    SolidZORO  
    OP
       2015-05-14 17:17:43 +08:00
    @ooxxcc 這個是坑,會失敗。貌似是Yosemite上會。
    ooxxcc
        19
    ooxxcc  
       2015-05-14 17:23:34 +08:00
    @SolidZORO 不是有预编译好的bottle么……
    julyclyde
        20
    julyclyde  
       2015-05-14 23:20:37 +08:00
    php-fpm本身就是一个SAPI,本身就有版本号这个属性
    不是一个wrapper
    SolidZORO
        21
    SolidZORO  
    OP
       2015-05-15 00:29:07 +08:00
    @julyclyde 嗯,應該是的。不過各版本之間並不能混用。


    另外,我最後還是妥協用brew 安裝 php54,應為php53的--with-fpm是壞的,只有php54是好的,不過php54已經支持array直接[]調用了,怕調不出bug。

    期間還嘗試過手動make php53,但是又涉及到mysql之類lib,mysq又要編譯,編譯的時候不是少這個就是少那個,加之網上的教程多為linux,涉及osx的全都是brew,所以只好放棄。
    msg7086
        22
    msg7086  
       2015-05-15 10:06:53 +08:00 via Android
    php-fpm并不调用php
    SolidZORO
        23
    SolidZORO  
    OP
       2015-05-15 13:13:37 +08:00
    @msg7086 這樣? php-fpm的關係不是 [PHP] <= [php-fpm] => [nginx] 這樣的關係嗎?算是一個轉譯層。那php-fpm也要找到php和nginx才行吧。

    那⋯⋯不然的話,你說來聽聽。
    julyclyde
        24
    julyclyde  
       2015-05-15 13:15:00 +08:00
    @SolidZORO 不该说“不过”俩字。应该是“因此不同版本不能混用”
    julyclyde
        25
    julyclyde  
       2015-05-15 13:15:31 +08:00
    @SolidZORO 我之前说过了,php-fpm就是PHP本身,不是一个wrapper
    msg7086
        26
    msg7086  
       2015-05-15 13:41:48 +08:00
    @SolidZORO nginx => php(fpm) 完
    php-fpm就是php,不需要再找一个php。
    你把手头的php命令行全卸载了也照样用fpm。
    fpm和php-cli是两回事。
    huigeer
        27
    huigeer  
       2015-05-23 14:19:52 +08:00
    php7-fpm 启动参数 -t /usr/local/php7/etc/php.ini
    php5.5.25-fpm 启动参数 -t /usr/local/php5.5.25/etc/php.ini
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1980 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:49 · PVG 08:49 · LAX 16:49 · JFK 19:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.