前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解决Php控制台和phpinfo版本号不一致问题

解决Php控制台和phpinfo版本号不一致问题

作者头像
码农编程进阶笔记
发布于 2021-07-20 08:17:21
发布于 2021-07-20 08:17:21
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

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

PHP升级

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 查询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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装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 目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ 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
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 查看安装后的版本号
$ /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 替换成我们最新的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 查找位置
$ 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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php phpinfo(); ?>

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 文件, 那么就指定一个吧

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ php-fpm --fpm-config /private/etc/php-fpm.conf

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ 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 才是页面展示的信息; 而 phpphp-fpm 总是一对一的, 自己版本找自己对应的搭档就好了

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

解决方案

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ 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 给换成最新的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 查找位置
$ 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 -vphp-fpm -v 应该是一对的, 要换应该一起换

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农编程进阶笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP 8.4 编译部署webman1.6与ThinkPHP 8.1实战教程
PHP 8.4 已于2024年11月21日正式发布。PHP 8.4 是PHP语言的一次重大更新。它包含许多新功能,例如属性钩子、不对称可见性、更新的 DOM API、性能改进、错误修复和常规清理等。
Tinywan
2024/12/09
3270
PHP 8.4 编译部署webman1.6与ThinkPHP 8.1实战教程
MNMP (Mac + Nginx + MySQL + PHP) 开发环境搭建
ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
仇诺伊
2018/09/12
2.3K0
教你如何在Mac系统下自由搭建Nginx+php-fpm
由于一直在虚拟机的状态下开发PHP,尝试一下mac本地搭建环境.mac本身是自带Apache+php的,在低版本的mac系统中,mac中的php版本是5.6的版本.
兔云小新LM
2019/07/24
1.4K0
教你如何在Mac系统下自由搭建Nginx+php-fpm
Mac超快速搭建Nginx、PHP、PHPStorm、XDebug环境一、安装自己需要的版本php二、安装nginx三、安装mysql、mongodb四、Xdebug配置五、配置PHPStorm的Xd
一、安装自己需要的版本php 以php7.1为例,执行:curl -s https://php-osx.liip.ch/install.sh | bash -s 7.1 (去这个链接下找自己想要下载的php版本 https://php-osx.liip.ch/) 安装结束后,/usr/local/php5目录下即刚刚install的php 此时在终端中输入php -v 显示的还是老的版本,可以将这个新的PHP路径追加到$path中。 vi ~/.profile 在文件中增加以下一行 export PATH
Clive
2018/06/14
1.9K0
将你的PHP程序升级到PHP7.0
nginx如果需要某些高级特性,比如lua支持等,可以自己下载源码编译,这里老高图快,直接用官方源yum安装了
老高的技术博客
2022/12/28
7100
将你的PHP程序升级到PHP7.0
在Linux服务器(ubuntu 16)上部署多套PHP环境
近期终于忍痛将所有的代码从SAE切换到了个人的vps,部署过程中发现,ubuntu 16默认支持的PHP版本为PHP 7,但是由于本人的PHP写的比较早,用到了mysql相关的内容,因此为了降低成本,不得不安装PHP 5.X系列。经过一番折腾终于解决问题,这里附上对应的过程。 最终版本 服务器: $ cat /proc/version Linux version 4.8.3-x86_64-linode76 (maker@build) (gcc version 4.7.2 (Debian 4.7
子勰
2018/05/22
1.5K0
转:全新安装Mac OSX 开发者环境 同时使用homebrew搭建 (LNMP开发环境)
Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具。 Mac 自带ruby 所以安装起来很方便,同时它也会自动把git也给你装上。官方网站:http://brew.sh 。
全栈程序员站长
2021/05/19
1.4K0
php助手-brew-php-switcher 实现Mac PHP版本切换
以上我们可以看出 有两个php服务存在,而系统或者命令行会认其中的一个,识别哪个php环境是另外一件事,后边会叙述。
needrunning
2019/07/04
5.3K0
php助手-brew-php-switcher 实现Mac PHP版本切换
LNMP 架构的搭建及应用部署
LAMP 平台作为目前应用最为广泛的网站服务器架构,其中的“A”对应着web服务软件的Apache ,但是,现在随着时间的推移,越来越多的企业开始使用Nginx这匹黑马,LNMP或LEMP架构也收到越来越多的运维人员的青睐。 废话不说,直接开整。 一、准备工作:
小手冰凉
2019/09/10
9950
LNMP 架构的搭建及应用部署
ubuntu系统两个PHP版本坑坏人
事情经过是这样的,在ubuntu系统下要用EleasticSearch – php 插件,然后用composer安装结果出现和PHP版本不符合的报错。
PHP学习网
2022/08/03
1.2K0
安装多版本php(php5.6,php7.2)
1,报错:configure: WARNING: unrecognized options: –with-mysql, –with-mcrypt, –with-curlwrappers, –enable-gd-native-ttf 解决:删除–with-mysql –enable-gd-native-ttf –with-mcrypt ,从新安装 安装目录为:–prefix=/usr/local/php7 (可自定义)
全栈程序员站长
2022/08/09
4.9K0
一步步教你编译PHP 8.3并快速启动ThinkPHP 8.0框架项目
本文将介绍如何在本地编译 PHP 8.3 并快速搭建一个 ThinkPHP 8.0 框架应用。通过这篇教程,您可以轻松掌握 PHP 8.3 的编译和 ThinkPHP 8.0 的使用,快速构建您的 PHP Web 应用。
Tinywan
2023/12/26
2.8K0
一步步教你编译PHP 8.3并快速启动ThinkPHP 8.0框架项目
CentOS下Nginx+PHP7 安装及配置
yum install pcre pcre-devel openssl openssl-devel -y
星哥玩云
2022/07/19
4890
Linux 下配置nginx到php的连接
安装Nginx:Linux 6 下安装编译安装Nginx 安装PHP : Linux 6 下编译安装 PHP 5.6
Leshami
2018/08/13
2.2K0
源码编译LNMP平台架构
众所周知,LAMP 平台是目前应用最为广泛的网站服务器架构,其中的“A”对应着Web服务软件Apache HTTP Server。随着Nginx在企业中的使用越来越多,LNMP(或LEMP)架构也受到越来越多Linux系统工程师的青睐,其中的“E”就来自于Nginx的发音[engine x]。就像构建LAMP平台一一样, 构建LNMP平台也需要Linux服务器、MySOL数据库和PHP解析环境,区别主要在Nginx与PHP的协作配置上。
星哥玩云
2022/07/24
7800
源码编译LNMP平台架构
安装php7
下载php7 wget http://cn.php.net/distributions/php-7.0.27.tar.gz 安装依赖 yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel yum -y install curl-devel yum -y install libxslt-devel 编译 ./configure
零月
2018/04/25
1.4K0
安装php7
配置nginx支持php
一、检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过。
conanma
2021/12/05
3K0
Mac配置PHP环境(brew安装nginx+php)「建议收藏」
这篇只介绍安装PHP+nginx,安装mysql 之前写了一篇: Mac下安装mysql(brew install mysql )感兴趣的可以去查看
全栈程序员站长
2022/07/31
4.7K0
Mac配置PHP环境(brew安装nginx+php)「建议收藏」
mac下载切换不同PHP版本
这个命令把PHP安装到了 /usr/local/php5目录下,是一个单独的目录,所以,不会影响到原先的PHP,这2个版本是共存的。完全不会影响到目前的PHP版本。
OwenZhang
2021/12/08
1.5K0
mac下载切换不同PHP版本
ubuntu下nginx+php5的部署
ubuntu下nginx+php5环境的部署和centos系统下的部署稍有不同,废话不多说,以下为操作记录: 1)nginx安装 root@ubuntutest01-KVM:~# sudo apt-get update && sudo apt-get upgrade root@ubuntutest01-KVM:~# sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-essential openssl libssl0.
洗尽了浮华
2018/01/23
8890
ubuntu下nginx+php5的部署
推荐阅读
相关推荐
PHP 8.4 编译部署webman1.6与ThinkPHP 8.1实战教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验