• php -v和phpinfo() 输出的php版本不一致


    这个的问题就是系统自带的php版本和新安装的php高级版本同时存在,并且终端和phpinfo()加载的文件位置不一致导致。

    其中,

    nginx服务解析phpinfo()是依赖php-fpm实现的,所以phpinfo()输出的是php-fpm启动的版本;

    而终端执行php -v是加载终端配置文件中设置的php安装目录对应的php版本的;

    所以导致两者php版本不一致主要就是启动的php-fpm版本和终端配置的php版本不一致

    直接的解决办法就是将高版本php安装目录下的高版本php-fpm安装目录也加到终端配置文件,让系统自动加载高版本php-fpm即可。

    快速解决:

    配置~/.bash_profile:

    export PATH=/usr/local/Cellar/php@7.2/7.2.23/bin:/usr/local/Cellar/php@7.2/7.2.23/sbin:${PATH}
    

    如果系统使用的是zsh,就在~/.zshrc文件最后添加:

    source ~/.bash_profile
    

    然后再执行

    source ~/.zshrc
    

    使配置生效,并重启php-fpm

    sudo killall php-fpm
    
    sudo php-fpm -D
    

    即可

    具体过程:

    1、查看当前php版本

    php -v
    

    得到以下输出:

    PHP 7.2.23 (cli) (built: Oct 10 2019 10:15:26) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
        with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies
    

    2、查看php安装位置

    which php
    

    whereis php
    

    得到以下输出:

    /usr/local/Cellar/php@7.2/7.2.23/bin/php
    

    3、查看php-fpm 版本和安装位置

    php-fpm -v
    

    得到以下输出:

    PHP 5.6.30 (fpm-fcgi) (built: Oct 29 2017 20:31:21)
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    
    which php-fpm
    

    得到以下输出:

    /usr/sbin/php-fpm
    

    以上查看一遍后,发现php加载的安装目录是新安装的php高级版本,而php-fpm 还是mac系统自带的低版本,原因是在系统终端配置文件中配置了新版本php安装位置,但是没有配置php-fpm的安装位置,导致启动php-fpm时自动加载的是系统低版本的php-fpm,当php框架依赖高版本php时,就会无法运行。

    4、配置新版本php-fpm加载目录

    配置~/.bash_profile

    export PATH=/usr/local/Cellar/php@7.2/7.2.23/bin:/usr/local/Cellar/php@7.2/7.2.23/sbin:${PATH}
    

    如果系统使用的是zsh,就在~/.zshrc文件最后添加:

    source ~/.bash_profile
    

    或直接将上述路径配置设置在~/.zshrc文件中。

    然后执行source ~/.zshrc使配置生效

    5、查看当前php-fpm版本

    (base)  qingshan@qingshan � ~ � php-fpm -v
    PHP 7.2.23 (fpm-fcgi) (built: Oct 10 2019 10:15:34)
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
        with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies
    

    已经自动加载高版本的php-fpm了。

    6、重启php-fpm

    终止后台运行的php-fpm进程

    sudo killall php-fpm
    

    启动php-fpm并后台运行:

    sudo php-fpm -D
    

    此时phpinfo输出的php版本信息就是最新的7.2版本

  • 相关阅读:
    对眼睛有利的屏幕颜色
    C++的动态联编与静态联编【转载】
    关于虚析构函数
    虚析构函数的使用(转载!)
    c/c++内存机制(转)
    delete this
    PhpStorm环境配置
    flutter之路由与导航
    flutter之Widget
    Flutter项目初步认识
  • 原文地址:https://www.cnblogs.com/zqunor/p/12190868.html
Copyright © 2020-2023  润新知