centos下升级php5.3到php5.6

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 查看并删除原有的php5.3原文地址:http://blog.csdn.net/na_beginning/article/details/53414122查看原有的php版本:php -V12查看已经安装的php的包:yum list installed | grep php12可以看到如下原有的安装包:php-common.

查看并删除原有的php5.3

原文地址:http://blog.csdn.net/na_beginning/article/details/53414122

查看原有的php版本:

php -V
  • 1
  • 2

查看已经安装的php的包:

yum list installed | grep php
  • 1
  • 2

可以看到如下原有的安装包:

php-common.x86_64 0:5.3.3-38.el6   
php-gd.x86_64 0:5.3.3-38.el6        
php-ldap.x86_64 0:5.3.3-38.el6          
php-mysql.x86_64 0:5.3.3-38.el6    
php-odbc.x86_64 0:5.3.3-38.el6      
php-pdo.x86_64 0:5.3.3-38.el6           
php-pear.noarch 1:1.9.4-4.el6      
php-pecl-apc.x86_64 0:3.1.9-2.el6   
php-pecl-memcache.x86_64 0:3.0.5-4.el6  
php-pgsql.x86_64 0:5.3.3-38.el6    
php-soap.x86_64 0:5.3.3-38.el6      
php-xml.x86_64 0:5.3.3-38.el6           
php-xmlrpc.x86_64 0:5.3.3-38.el6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

全都是5.3.3-38.el6版本的。

如果不删除原有的5.3的包,安装php5.6的包时会报冲突的错误。

删除5.3的包:

yum remove php.cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mysql.x86_64 php-odbc.x86_64 php-pdo.x86_64 php-pear.noarch php-pecl-apc.x86_64 php-pecl-memcache.x86_64 php-pgsql.x86_64 php-soap.x86_64 php-xml.x86_64 php-xmlrpc.x86_64
  • 1
  • 2

删除后可以确认一下是否已经完成删除:

yum list installed | grep php
  • 1
  • 2

结果应该为空。

安装php5.6的包

由于centos 6.* 原有的rpm中不包含5.6的包的资源,所以需要先安装导入php的安装源:

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
  • 1
  • 2

然后安装5.6相关的包:

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64 php56w-odbc.x86_64 php56w-xml.x86_64 php56w-xmlrpc.x86_64 php56w-soap.x86_64
  • 1
  • 2

全部安装成功后确认一下:

yum list installed | grep php
  • 1
  • 2

结果如下:

php56w.x86_64            5.6.27-1.w6    @webtatic                               
php56w-cli.x86_64        5.6.27-1.w6    @webtatic                               
php56w-common.x86_64     5.6.27-1.w6    @webtatic                               
php56w-gd.x86_64         5.6.27-1.w6    @webtatic                               
php56w-ldap.x86_64       5.6.27-1.w6    @webtatic                               
php56w-mbstring.x86_64   5.6.27-1.w6    @webtatic                               
php56w-mysql.x86_64      5.6.27-1.w6    @webtatic                               
php56w-odbc.x86_64       5.6.27-1.w6    @webtatic                               
php56w-pdo.x86_64        5.6.27-1.w6    @webtatic                               
php56w-soap.x86_64       5.6.27-1.w6    @webtatic                               
php56w-xml.x86_64        5.6.27-1.w6    @webtatic                               
php56w-xmlrpc.x86_64     5.6.27-1.w6    @webtatic
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

重启php-fpm:

/usr/local/php/sbin/php-fpm restart
  • 1
  • 2

然后执行:

php -v
  • 1
  • 2

应当显示 5.6.

升级完毕。

不过存在一个疑问:

直接在服务器执行php -v的版本是5.6,但是在nginx服务器写一个info.php,内容如下:

<?php
    phpinfo();
?>
  • 1
  • 2
  • 3
  • 4

然后再浏览器访问:http://ip:port/info.php,显示的页面却还是旧的5.3版本。这个问题还没有搞清楚。

对于上述疑问,追踪进展为:

上面虽然删除安装了php的依赖包,但是旧的php版本本身没有删除,也就是说centos上存在两个版本的php,升级php依赖包后,执行 php -v 只不过系统访问的路径默认访问的是5.6版本的包,但是通过其他应用,比如nginx去访问的时候访问的还是旧的5.2版本的php。

检查过程如下:
执行php -v: 5.6

查看系统所有版本的php:

find / -name php
  • 1
  • 2

显示结果中可以找到下面两个命令:

/usr/local/php/bin/php
/etc/bin/php
  • 1
  • 2
  • 3

分别执行 /usr/local/php/bin/php -v 和 /etc/bin/php -v 可以看到,一个是5.2版本,一个是5.6版本,这就是为什么上面php -v 看到的是5.6版本,而phpinfo看到的是5.2版本的直接原因。
根本原因:通过nginx访问php请求,nginx转发到127.0.0.1:9000,监听9000端口的php-fpm接收到请求后,将请求转交给对应的php解释器进行处理,也就是说使用的是哪个版本的php是由php-fpm决定,而php-fpm只是php的一个补丁,通过编译安装php时configure时加上参数 –enable-fpm 安装php-fpm,所以安装php时就已经决定了php-fpm调用的是哪一个版本的php,如果需要改变使用的php版本,只能重新下载更新版本的php源代码,然后重新编译安装带上–enable-fpm参数,这样才能成功改变phpinfo()显示的版本。

重新安装php5.6的方法参考linux安装nginx和mysql和php.md。

另外,想要找到系统采用的当前php.ini配置文件的话,可以通过下面的方式查找:

find / -name php.ini
  • 1
  • 2

这样可能会显示多个php.ini路径,然后执行如下命令可以获取当前被系统采用的php.ini配置文件:

php -i | grep php.ini
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
安全 Linux
CentOS7下快速升级至OpenSSH9.4p1安全版本
CentOS7下快速升级至OpenSSH9.4p1安全版本
139 1
|
3月前
|
安全 Linux Shell
CentOS7下快速升级至OpenSSH9.3p2安全版本
CentOS7下快速升级至OpenSSH9.3p2安全版本
158 0
|
2月前
|
SQL Linux Shell
centos yum 升级 glibc
在 CentOS 上使用 YUM 升级 GLIBC 库需要谨慎操作,因为 GLIBC 库是系统的基础组件,错误的升级可能导致系统不稳定或与现有应用程序不兼容。 以下是升级 GLIBC 库的步骤: 1. 备份重要数据:在执行任何系统级更改之前,请确保备份重要的数据和配置文件,以防止数据丢失或配置错误。 2. 更新系统:使用 YUM 更新系统软件包,确保系统是最新的稳定版本。可以使用以下命令进行更新: ```sql sudo yum update ``` 3. 备份 GLIBC 库:在升级之前,建议备份当前的 GLIBC 库。可以使用以下命令进行备份: ```bash sudo cp
608 0
|
3月前
Centos7.6 cmake版本升级至3.21.0
Centos7.6 cmake版本升级至3.21.0
|
3月前
|
C语言
Centos7.6 gcc 4.8升级至7.3
Centos7.6 gcc 4.8升级至7.3
|
4月前
|
安全 Linux 网络安全
猿创征文|centos7升级openssh服务(再也不怕漏扫啦)
猿创征文|centos7升级openssh服务(再也不怕漏扫啦)
111 0
|
4月前
|
应用服务中间件 Linux PHP
百度搜索:蓝易云【在centos中配置nginx+php的环境教程。】
请注意,上述步骤是基本的配置指南,实际操作中可能会有特定的需求和配置。建议参考Nginx和PHP官方文档或其他详细教程以获得更全面和准确的信息。
45 0
|
4月前
|
小程序 JavaScript Shell
centos编译安装PHP(2)
Php编译安装成功之后,是没有php.ini文件的,需要我们从源码包中复制过去。
45 1
|
1月前
|
Linux 网络安全 数据安全/隐私保护
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
144 0
|
1月前
|
存储 JavaScript Linux
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位

热门文章

最新文章