`

centos下升级php5.3到php5.6

 
阅读更多

Talk is cheap, show me the code.

查看并删除原有的php5.3

查看原有的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 5.6 升级php到5.3的方法

    在进行CentOS 5.6升级PHP到PHP 5.3的操作时,需要注意以下知识点: 1. 升级准备工作:升级前,应该确保备份当前系统中所有重要的数据和配置文件。因为升级过程中可能会更改系统文件,若操作不当可能会导致服务不...

    centos5.6php5.3.29phpredis.tar.gz.zip

    本压缩包“centos5.6php5.3.29phpredis.tar.gz.zip”显然是针对CentOS 5.6系统的一个软件包,包含了在该系统上运行PHP 5.3.29版本并集成phpRedis扩展的相关资源。 PHP是一种广泛使用的开源脚本语言,尤其在Web开发...

    centos5.5(5.6)最新lnmp安装步骤(php5.3.6+ng1.0.0+mysql5.5.12)

    - **安全更新**:考虑到CentOS 5.5(或5.6)已是较老版本的操作系统,强烈建议升级至更现代的版本,以获得最新的安全补丁和支持。 综上所述,搭建基于CentOS 5.5(或5.6)的LNMP环境需要细致的规划与操作,从基础...

    CentOS 6.5 32-64,支持lamp和lnmp,MySQL支持5.1和5.6,PHP支持5.3和

    CentOS 6.5 32-64,支持lamp和lnmp,MySQL支持5.1和5.6,PHP支持5.3和5.6,Apache 2.2,nginx 1.8(先安装mysql—]apache-

    php_screw-1.5_php5.3

    但是最后一个版本1.5不支持php5.3以上的版本。而其他的加密工具zend等基本上都是收费的,经过查阅资料和修改原代码,分享此版本给大家。以下测试环境测试通过: 测试环境:centos6.5 php5.6 apache2.4

    阿里云CentOs镜像使用手册

    - 提供多个版本的PHP,如PHP5.3、PHP5.4、PHP5.5、PHP5.6、PHP7.0、PHP7.1,并支持版本之间自由切换。 - 镜像中包括了Apache、MySQL、Redis、Memcached、Pure-FTPd、phpMyAdmin等常用网络服务和工具。 - 系统使用...

    stack:PHP 5.3〜8.0 + Nginx +加密+ MariaDB + App自动安装

    支持PHP 5.3、5.4、5.5、5.6、7.0、7.1、7.2、7.3、7.4、8.0 10个版本,在一台服务器中可以使用多个PHP。 Laravel 5.1〜5.5,WordPress,XE,Pinoy 4/5,phpMyAdmin自动安装支持。 ( ) 支持自动创建系统帐户和...

    部署wordpress.txt

    ### 部署WordPress在CentOS 6.5上的步骤详解 #### 一、环境准备与更新 在开始部署WordPress之前,首先确保CentOS 6.5系统的软件包是最新的,这一步非常重要,因为更新系统可以修复已知的安全漏洞并... yum install ...

    Nginx镜像使用手册

    4. 初始默认PHP版本为5.4,同时支持切换至PHP5.3、5.5、5.6和PHP7.0版本,提供了较大的灵活性。 5. 提供了交互式的Nginx虚拟主机添加方法,使添加过程变得快捷方便。 6. 菜单式的FTP账号管理脚本,可以轻松建立FTP...

    Wordpress安装.docx

    - **目标**:将PHP版本升级至5.6或更高。 ##### 2.1 查询当前安装的PHP版本 - **命令**:`php -v` - **作用**:检查当前系统安装的PHP版本。 - **示例输出**:`PHP 5.3.3 (cli) (built: May 8 2015 14:43:36)` ##...

    ltmh:在CentOS Red Hat Debian 和Ubuntu 是一个完全自动化的LTMH LNMH LNMP LTMP 安装脚本

    脚本特点: 不断更新源码编译安装,大部分源码都是最新稳定版,官网下载修复了一些安全问题您可以自由选择安装数据库版本(MySQL-5.6、MySQL-5.5、MariaDB-10.0、MariaDB-5.5) 可以自由选择安装PHP版本(php-5.5、...

    php-docker:[已弃用]用于PHP Docker Boilerplate的预构建PHP Docker映像

    Ubuntu 12.04-PHP 5.3,LTS(精确) Ubuntu 14.04-PHP 5.5,LTS(可信赖) Ubuntu 15.04-PHP 5.6(生动) Ubuntu 15.10-PHP 5.6(智能) CentOS 7-PHP 5.4 包含以下软件包: 常用工具 ansible(易于配置) ...

    阿里云服务器的配置

    4. 默认使用PHP 5.4版本,同时支持切换至PHP 5.3、5.5、5.6以及PHP 7.0等不同版本。 5. 提供了交互式的Nginx虚拟主机添加方式,简化了操作流程。 6. 提供菜单式FTP账号管理脚本,方便建立FTP虚拟用户。 7. 提供在线...

    搭建LAMP环境附步骤图

    接下来,选择MySQL版本(推荐5.5或5.6),并指定安装路径(默认为`/usr/local/mysql`)以及数据存放位置(默认建议的目录或自定义到其他分区以保护数据)。设置MySQL root用户的密码(默认为`root`),并决定是否...

    HTIPPBX安装流程

    首先,安装的基础环境是CentOS 5.6,这是一个稳定且长期支持的操作系统版本,适合部署服务器应用。在开始安装之前,确保系统已经更新到最新补丁,并且具备了必要的支持包。这些支持包包括bison、ncurses、zlib、...

Global site tag (gtag.js) - Google Analytics