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的库,更新比比5.5及时多了,居然已经有 php 5.3.3 了
centos5.5(5.6)最新lnmp安装步骤(php5.3.6+ng1.0.0+mysql5.5.12)
centos6.5+php5.3.29环境下phpredis源码,编译安装完成后,单独编译phpredis
但是最后一个版本1.5不支持php5.3以上的版本。而其他的加密工具zend等基本上都是收费的,经过查阅资料和修改原代码,分享此版本给大家。以下测试环境测试通过: 测试环境:centos6.5 php5.6 apache2.4
主要介绍了CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4 5.5 5.6 7.0 7.1多版本全能环境,需要的朋友可以参考下
支持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自动安装支持。 ( ) 支持自动创建系统帐户和...
脚本特点: 不断更新源码编译安装,大部分源码都是最新稳定版,官网下载修复了一些安全问题您可以自由选择安装数据库版本(MySQL-5.6、MySQL-5.5、MariaDB-10.0、MariaDB-5.5) 可以自由选择安装PHP版本(php-5.5、...
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(易于配置) ...
下载WordPress的压缩包,并且放到centos系统中。 将该压缩包拷贝到/var/www/html目录,并且解压到该目录,注意压缩包的名称 [root@bogon html]# tar xvf wordpress5.xxx.gz [root@bogon html]# cd /var/www/html ...
以上版本(注意:PHP5.3dev 版本和 PHP6 均不支持) MySQL 版本要求 MySQL5.6 以上版本 推荐服务器环境和配置 推荐服务器系统 CentOS Linux 7.6(64 位) 推荐 WEB 服务器 Apache 和 nginx 推荐独立数据库服务器 ...