本文适用于所有CentOS6及Red Hat Enterprise Linux6版本上安装php5.4,本人测试安装环境为32位CentOS6系统。
文章来源:PHP 5.4 on CentOS/RHEL 6.2 via Yum http://www.webtatic.com/packages/php54/
php5.4于2012年5月8号发布,从php5.4.0开始php加入了一些新特色如:
- Traits支持
- 内置了一个简单的Web服务器
- 提供了数组简短语法
- 直接对函数返回值进行数组取值
- 最终删除魔术方法及安全模式
你可以在这里看到
更新日志。
这里使用 Webtatic EL6的YUM源来安装php5.4,我们首页安装Webtatic EL6 YUM源
- rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
安装php5.4
- yum install php54w
附带的php扩展列表:
php54w | mod_php |
php54w-bcmath | |
php54w-cli | php-cgi, php-pcntl, php-readline |
php54w-common | php-api, php-bz2, php-calendar, php-ctype, php-curl, php-date, php-exif, php-fileinfo, php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-json, php-libxml, php-openssl, php-pcre, php-pecl-Fileinfo, php-pecl-phar, php-pecl-zip, php-reflection, php-session, php-shmop, php-simplexml, php-sockets, php-spl, php-tokenizer, php-zend-abi, php-zip, php-zlib |
php54w-dba | |
php54w-devel | |
php54w-embedded | php-embedded-devel |
php54w-enchant | |
php54w-fpm | |
php54w-gd | |
php54w-imap | |
php54w-interbase | php_database, php-firebird |
php54w-intl | |
php54w-ldap | |
php54w-mbstring | |
php54w-mcrypt | |
php54w-mssql | |
php54w-mysql | php-mysqli, php_database |
php54w-odbc | php-pdo_odbc, php_database |
php54w-pdo | |
php54w-pgsql | php-pdo_pgsql, php_database |
php54w-process | php-posix, php-sysvmsg, php-sysvsem, php-sysvshm |
php54w-pspell | |
php54w-recode | |
php54w-snmp | |
php54w-soap | |
php54w-tidy | |
php54w-xml | php-dom, php-domxml, php-wddx, php-xsl |
php54w-xmlrpc | |
php54w-zts |
鉴于目前Webtatic对php5.3提供的扩展也就这么多,php5.4也就提供这些。www.linuxidc.com 其它扩展像 opcode caches目前还没有出来,但是Webtatic会努力的尽快公布出来。
注意事项
最新版本中的error_reporting 中E_ALL 现在包含了 E_STRICT,会出现更多的警告及错误提示。默认情况下error_reporting是关闭状态,但是如果是从旧的php版本中升级而 来,php.ini可能得不到更新,error_reporting可能开启着。
关于php5.4在centos5上的安装升级
因为centos已经过去的版本了,用的越来越少,把php5.4移植到centos5上也需要大量的工作,估计够呛能完成啊。
原文网址:http://www.linuxidc.com/Linux/2012-06/62963.htm
===========================================================================
[root@centOS-i386-mini www]# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
Retrieving https://mirror.webtatic.com/yum/el6/latest.rpm
Preparing... ########################################### [100%]
1:webtatic-release ########################################### [100%]
[root@centOS-i386-mini www]# yum install php56w php56w-opcache
已加载插件:fastestmirror
设置安装进程
Determining fastest mirrors
epel/metalink | 4.3 kB 00:00
* PUIAS_6_computational: puias.math.ias.edu
* base: mirrors.aliyun.com
* epel: mirror.premi.st
* extras: mirrors.btte.net
* remi-safe: remi.kazukioishi.net
* rpmforge: mirror.fairway.ne.jp
* updates: mirrors.aliyun.com
* webtatic: sp.repo.webtatic.com
PUIAS_6_computational | 3.3 kB 00:00
PUIAS_6_computational/primary_db | 1.2 MB 00:02
base | 3.7 kB 00:00
epel | 4.3 kB 00:00
epel/primary_db | 5.0 MB 00:08
extras | 3.4 kB 00:00
nginx | 2.9 kB 00:00
nginx/primary_db | 8.4 kB 00:00
remi-safe | 2.9 kB 00:00
http://remi.kazukioishi.net/enterprise/6/safe/i386/repodata/6c86a88004ccc7ed704d7a65a98b963156bd896ebd5ed0abb2e3717c9feb6460-primary.sqlite.bz2: [Errno 12] Timeout on http://120.52.72.55:80/remi.kazukioishi.net/c3pr90ntcsf0/enterprise/6/safe/i386/repodata/6c86a88004ccc7ed704d7a65a98b963156bd896ebd5ed0abb2e3717c9feb6460-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds')
尝试其他镜像。
remi-safe/primary_db | 23 kB 00:00
rpmforge | 1.9 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 3.8 MB 00:06
webtatic | 3.6 kB 00:00
webtatic/primary_db | 140 kB 00:00
解决依赖关系
--> 执行事务检查
---> Package php56w.i386 0:5.6.18-1.w6 will be 安装
--> 处理依赖关系 php56w-common(x86-32) = 5.6.18-1.w6,它被软件包 php56w-5.6.18-1.w6.i386 需要
--> 处理依赖关系 php56w-cli(x86-32) = 5.6.18-1.w6,它被软件包 php56w-5.6.18-1.w6.i386 需要
--> 处理依赖关系 php56w-cli = 5.6.18-1.w6,它被软件包 php56w-5.6.18-1.w6.i386 需要
--> 处理依赖关系 httpd-mmn = 20051115,它被软件包 php56w-5.6.18-1.w6.i386 需要
--> 处理依赖关系 httpd,它被软件包 php56w-5.6.18-1.w6.i386 需要
---> Package php56w-opcache.i386 0:5.6.18-1.w6 will be 安装
--> 执行事务检查
---> Package httpd.i686 0:2.2.15-47.el6.centos.3 will be 安装
--> 处理依赖关系 httpd-tools = 2.2.15-47.el6.centos.3,它被软件包 httpd-2.2.15-47.el6.centos.3.i686 需要
--> 处理依赖关系 apr-util-ldap,它被软件包 httpd-2.2.15-47.el6.centos.3.i686 需要
---> Package php56w-cli.i386 0:5.6.18-1.w6 will be 安装
---> Package php56w-common.i386 0:5.6.18-1.w6 will be 安装
--> 执行事务检查
---> Package apr-util-ldap.i686 0:1.3.9-3.el6_0.1 will be 安装
---> Package httpd-tools.i686 0:2.2.15-47.el6.centos.3 will be 安装
--> 处理 php56w-common-5.6.18-1.w6.i386 与 php-common < 5.5.0 的冲突
--> 使用新的信息重新计算依赖关系
--> 执行事务检查
---> Package php-common.i686 0:5.3.3-46.el6_6 will be 升级
--> 处理依赖关系 php-common(x86-32) = 5.3.3-46.el6_6,它被软件包 php-fpm-5.3.3-46.el6_6.i686 需要
---> Package php-common.i686 0:5.3.3-46.el6_7.1 will be an update
--> 执行事务检查
---> Package php-fpm.i686 0:5.3.3-46.el6_6 will be 升级
---> Package php-fpm.i686 0:5.3.3-46.el6_7.1 will be an update
--> 处理 php56w-common-5.6.18-1.w6.i386 与 php-common < 5.5.0 的冲突
--> 完成依赖关系计算
错误:php56w-common conflicts with php-common-5.3.3-46.el6_7.1.i686
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[root@centOS-i386-mini www]#
Retrieving https://mirror.webtatic.com/yum/el6/latest.rpm
Preparing... ########################################### [100%]
1:webtatic-release ########################################### [100%]
[root@centOS-i386-mini www]# yum install php56w php56w-opcache
已加载插件:fastestmirror
设置安装进程
Determining fastest mirrors
epel/metalink | 4.3 kB 00:00
* PUIAS_6_computational: puias.math.ias.edu
* base: mirrors.aliyun.com
* epel: mirror.premi.st
* extras: mirrors.btte.net
* remi-safe: remi.kazukioishi.net
* rpmforge: mirror.fairway.ne.jp
* updates: mirrors.aliyun.com
* webtatic: sp.repo.webtatic.com
PUIAS_6_computational | 3.3 kB 00:00
PUIAS_6_computational/primary_db | 1.2 MB 00:02
base | 3.7 kB 00:00
epel | 4.3 kB 00:00
epel/primary_db | 5.0 MB 00:08
extras | 3.4 kB 00:00
nginx | 2.9 kB 00:00
nginx/primary_db | 8.4 kB 00:00
remi-safe | 2.9 kB 00:00
http://remi.kazukioishi.net/enterprise/6/safe/i386/repodata/6c86a88004ccc7ed704d7a65a98b963156bd896ebd5ed0abb2e3717c9feb6460-primary.sqlite.bz2: [Errno 12] Timeout on http://120.52.72.55:80/remi.kazukioishi.net/c3pr90ntcsf0/enterprise/6/safe/i386/repodata/6c86a88004ccc7ed704d7a65a98b963156bd896ebd5ed0abb2e3717c9feb6460-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds')
尝试其他镜像。
remi-safe/primary_db | 23 kB 00:00
rpmforge | 1.9 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 3.8 MB 00:06
webtatic | 3.6 kB 00:00
webtatic/primary_db | 140 kB 00:00
解决依赖关系
--> 执行事务检查
---> Package php56w.i386 0:5.6.18-1.w6 will be 安装
--> 处理依赖关系 php56w-common(x86-32) = 5.6.18-1.w6,它被软件包 php56w-5.6.18-1.w6.i386 需要
--> 处理依赖关系 php56w-cli(x86-32) = 5.6.18-1.w6,它被软件包 php56w-5.6.18-1.w6.i386 需要
--> 处理依赖关系 php56w-cli = 5.6.18-1.w6,它被软件包 php56w-5.6.18-1.w6.i386 需要
--> 处理依赖关系 httpd-mmn = 20051115,它被软件包 php56w-5.6.18-1.w6.i386 需要
--> 处理依赖关系 httpd,它被软件包 php56w-5.6.18-1.w6.i386 需要
---> Package php56w-opcache.i386 0:5.6.18-1.w6 will be 安装
--> 执行事务检查
---> Package httpd.i686 0:2.2.15-47.el6.centos.3 will be 安装
--> 处理依赖关系 httpd-tools = 2.2.15-47.el6.centos.3,它被软件包 httpd-2.2.15-47.el6.centos.3.i686 需要
--> 处理依赖关系 apr-util-ldap,它被软件包 httpd-2.2.15-47.el6.centos.3.i686 需要
---> Package php56w-cli.i386 0:5.6.18-1.w6 will be 安装
---> Package php56w-common.i386 0:5.6.18-1.w6 will be 安装
--> 执行事务检查
---> Package apr-util-ldap.i686 0:1.3.9-3.el6_0.1 will be 安装
---> Package httpd-tools.i686 0:2.2.15-47.el6.centos.3 will be 安装
--> 处理 php56w-common-5.6.18-1.w6.i386 与 php-common < 5.5.0 的冲突
--> 使用新的信息重新计算依赖关系
--> 执行事务检查
---> Package php-common.i686 0:5.3.3-46.el6_6 will be 升级
--> 处理依赖关系 php-common(x86-32) = 5.3.3-46.el6_6,它被软件包 php-fpm-5.3.3-46.el6_6.i686 需要
---> Package php-common.i686 0:5.3.3-46.el6_7.1 will be an update
--> 执行事务检查
---> Package php-fpm.i686 0:5.3.3-46.el6_6 will be 升级
---> Package php-fpm.i686 0:5.3.3-46.el6_7.1 will be an update
--> 处理 php56w-common-5.6.18-1.w6.i386 与 php-common < 5.5.0 的冲突
--> 完成依赖关系计算
错误:php56w-common conflicts with php-common-5.3.3-46.el6_7.1.i686
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[root@centOS-i386-mini www]#
yum install php56.x86_64 php56-mysqlnd-qc-panel.noarch php56-php-cli.x86_64 php56-php-common.x86_64 php56-php-devel.x86_64 php56-php-fpm.x86_64 php56-php-gd.x86_64 php56-php-ldap.x86_64 php56-php-libvirt.x86_64 php56-php-mbstring.x86_64 php56-php-mcrypt.x86_64 php56-php-mysqlnd.x86_64 php56-php-opcache.x86_64 php56-php-pdo.x86_64 php56-php-pear.noarch php56-php-pecl-http.x86_64 php56-php-pecl-http-devel.x86_64 php56-php-pecl-imagick.x86_64 php56-php-pecl-imagick-devel.x86_64 php56-php-pecl-inclued.x86_64 php56-php-pecl-json-post.x86_64 php56-php-pecl-memcache.x86_64 php56-php-pecl-memcached.x86_64 php56-php-pecl-redis.x86_64 php56-php-pecl-xdebug.x86_64 php56-php-xcache.x86_64 php56-php-xml.x86_64 php56-php-xmlrpc.x86_64 php56-php-pecl-zip.x86_64