Php控制台和phpinfo版本号不一致

Php控制台和phpinfo版本号不一致

大家好,又见面了,我是全栈君。

本来是那 Sublime Text 3 跑几个例子, 结果安装一个格式化插件 phpfmt 之后保存时总提示当前的PHP版本过低, 要你升级, 想着升级就升级呗, 于是就被带进坑里去了…

PHP升级

Mac好像是自带了PHP了, 版本号查询: php -v

# 查询php版本号
$ php -v
PHP 5.5.38 (cli) (built: Oct 29 2017 20:49:07)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

PHP5 和 PHP7 是两个差别很大的版本, 其中不同自行网上查找

说是升级, 其实是重新安装一个, 源码安装就麻烦一点, 这里有个简单点的:

# 安装PHP7, 最后是大的版本号
curl -s http://php-osx.liip.ch/install.sh | bash -s 7.2

最后安装的目录是: /usr/local/php5-7.2.2-20180201-132629
额~~, 好吧, 为什么是 php5-7.2.2 这个样子…

而且安装完之后, 应该是有个 /usr/local/php5 的链接指向了 /usr/local/php5-7.2.2-20180201-132629 猜测是PHP好多地方应该都是指向的 /usr/local/php5 目录

$ ll /usr/local/
drwxr-xr-x   15 root        wheel   510B  4 12 19:31 php5-7.2.2-20180201-132629
lrwxr-xr-x    1 xuyinglong  wheel    37B  4 12 18:48 php5 -> /usr/local/php5-7.2.2-20180201-132629
# 查看安装后的版本号
$ /usr/local/php5-7.2.2-20180201-132629/bin/php -v
PHP 7.2.2 (cli) (built: Feb  1 2018 13:23:34) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.2, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

看起来没问题, 然后再来个偷梁换柱, 把 /usr/bin/php 替换成我们最新的

# 查找位置
$ whereis php
/usr/bin/php

# 先备份
$ sudo /usr/bin/php /usr/bin/php5.5

# 创建一个链接, 类似window下面的快捷方式
$ sudo ln -s /usr/local/php5-7.2.2-20180201-132629/bin/php /usr/bin/php

然后 php -v 就可以看到是 7.2.2 版本了

跑个PHP例子

经典的当然是:test.php

<?php phpinfo(); ?>

额, 话说直接可是跑不起来的, 把这段配置到 nginx 里, 然后重启 sudo nginx -s reload

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
    include        fastcgi_params;
}

上面的 test.php 放到 nginx 安装目录下的 html 文件夹下, 然后浏览器里访问:
http://localhost/test.php 如果幸运的话, 你就能看到 PHP 相关的版本和配置等信息了

等等, 是不是忘记启动 php-fpm 了, 现在的 PHP 都是带 php-fpm 的 (PHP5.3.3之后自带改模块了), 额, 这是个什么, 你还是看文末的参考吧

直接执行 php-fpm 好像是提示没有配置文件吧, 而 /etc 和 /private/etc 目录下都有 php-fpm.conf 文件, 那么就指定一个吧

$ php-fpm --fpm-config /private/etc/php-fpm.conf

额, 继续报错, 提示 /usr/var/log/php-fpm.log 目录不存在, 好吧, 这里修改一下路径

$ vim /private/etc/php-fpm.conf

# 修改错误日志文件路径, 目录不存在可以手动创建一下 mkdir -p /usr/local/log
error_log = /usr/local/log/php-fpm.log

好, 再次运行就成功了

于是我们再次刷新浏览器的 http://localhost/test.php 链接, 可以看到PHP相关的额信息, 可是版本号和控制台的不对啊…

控制台和Web端版本号不一致

额, 这个问题网上查了好多资料… 最终还是老外靠谱 大致内容:

  • php -v – 控制台命令, 表示php的版本号
  • phpinfo() – 这个是通过Web服务器查看到的PHP信息
  • 重点 – Web服务器是通过 php-fpm 关联到php的, 而 php-fpm 指向的 php 才是页面展示的信息; 而 php 和 php-fpm 总是一对一的, 自己版本找自己对应的搭档就好了

上面是看人家讨论 Apache 的 php5_module 模块按不同 php 版本来对应配置所想到的

解决方案

搞明白怎么回事就好解决问题了, 来看看:

$ php-fpm -v
PHP 5.5.38 (fpm-fcgi) (built: Oct 29 2017 20:49:27)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

在把 php-fpm 给换成最新的

# 查找位置
$ whereis php-fpm
/usr/sbin/php-fpm

# 备份
$ sudo mv /usr/sbin/php-fpm /usr/sbin/php-fpm5.5

# 创建一个链接
$ sudo ln -s /usr/local/php5-7.2.2-20180201-132629/sbin/php-fpm /usr/sbin/php-fpm

再次执行 php-fpm -v 可以看到是最新的 7.2.2 版本的了, 浏览器刷新应该可以看到都是最新的 7.2.2 版本的了

(忘记是否需要重启nginx了)

后话

nginx: 记住 php -v 和 php-fpm -v 应该是一对的, 要换应该一起换

apache: 同样, 如果安装了多个版本的php, 那么 php5_module 模块也需要对应

最后 Sublime Text 3 里面自动就好使了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111954.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 在pycharm中使用github「建议收藏」

    在pycharm中使用github「建议收藏」环境:PyCharm+git2.8+github账户+windows7/10一、首先你得有个github账号(温馨提示,记不住密码的同学可以拿个小本本记一下密码嗷。)二、在pycharm中配置github点击File点击Settings点击Versioncontrol点击Github点击右边的+号输入账号密码点击Login可以勾选下面的ssh传输方式三、…

  • eclipse中文插件如何安装_eclipse不显示svn插件

    eclipse中文插件如何安装_eclipse不显示svn插件1、在eclipse中下载插件,地址如下:Name:Subclipse1.2.x(Eclipse3.2+)   URL: http://subclipse.tigris.org/update_1.2.xName:Subclipse1.0.x(Eclipse3.0/3.1)   URL: http://subclipse.tigris.org/up

    2022年10月11日
  • java 股票历史数据_获取股票的历史数据

    java 股票历史数据_获取股票的历史数据packagecom.xiaole.stock;importjava.util.ArrayList;importjava.util.List;importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document;importorg.jsoup.nodes.Element;importorg.jsoup.select.Elements;publicclassGe…

  • 全卷积网络fcn详解_全卷积神经网络原理

    全卷积网络fcn详解_全卷积神经网络原理原文链接:全卷积网络FCN详解背景CNN能够对图片进行分类,可是怎么样才能识别图片中特定部分的物体,在2015年之前还是一个世界难题。神经网络大神JonathanLong发表了《FullyConvolutionalNetworksforSemanticSegmentation》在图像语义分割挖了一个坑,于是无穷无尽的人往坑里面跳。全卷积网络FullyConvolutional…

    2022年10月19日
  • uwsgi配置文件详解_curl_multi_init

    uwsgi配置文件详解_curl_multi_initmaster=true#启动主进程,来管理其他进程,其它的uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程。chdir=/web/www/mysite#在app加载前切换到当前目录,指定运行目录module=mysite.wsgi#加载一个WSGI模块,这里加载mysite/wsgi.py这个模块py…

  • idea 2021.3.8 for mac激活 3月最新注册码

    idea 2021.3.8 for mac激活 3月最新注册码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号