但是,第三方软件库有几个缺陷:第一,他们供应的软件没有经由CentOS官方测试,在安装软件的同时,可能会更换掉系统的一些核心文件,造成系统不稳定。第二,第三方库安装的软件可能不担保兼容性,大概对系统升个级就会导致某个软件没法利用。
以是本篇推举用SCL(Software Collections)软件库安装高版本的PHP。SCL属于CentOS官方的软件库,经由充分测试,安装软件时不会更换系统的核心文件,担保了系统的稳定性。
安装SCL很大略,只需一条命令就可以了:

[root@localhost]# yum install centos-release-scl-rh1
然后就能在yum中搜到新版的PHP了:
[root@localhost]# yum search php...php54-runtime.x86_64php55-runtime.x86_64rh-php56-runtime.x86_64rh-php70-runtime.x86_64...1234567
rh- 前缀是RedHat的意思,见告你这是官方供应的PHP而不是第三方库供应的。作者预测这个前缀规范是2015年旁边制订的,PHP5.4 & 5.5是在这之前发布的,为了担保你的程序的兼容性(比如你的某些程序里已经写了yum install php55,加个前缀程序就挂了),就没带上rh- 前缀。
接下来,安装PHP7.0:
[root@localhost]# yum install rh-php701
安装完之后,PHP实际会安装在/opt/rh目录下。
此时如果你运行php命令,系统依然会提示你command not found。这是由于,SCL的风格便是把软件对系统的影响减少到最小,乃至安装完PHP,php命令都不会被添加到 $PATH 变量中,以是你没法直接实行软件中的命令的。须要通过 scl enable 命令显示实行:
先看看SCL安装了哪些软件:
[root@localhost]# scl -lrh-php7012
可以看到我们在系统安装了一个rh-php70,先启用它并实行命令:
[root@localhost]# scl enable rh-php70 \公众php -v\公众PHP 7.0.10 (cli) (built: Nov 3 2016 08:06:03) ( NTS )Copyright (c) 1997-2016 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies1234
命令成功实行了。假如每一条命令都要这么实行,太麻烦了!
不要紧,你可以不用每次实行一条命令,而是直接实行 bash 命令,那么新开的shell就能自动识别php了:
[root@localhost]# scl enable rh-php70 bash[root@localhost]# php -vPHP 7.0.10 (cli) (built: Nov 3 2016 08:06:03) ( NTS )Copyright (c) 1997-2016 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies[root@localhost ~]# php -m[PHP Modules]bz2calendar...1234567891011
SCL以 scl enable 办法管理软件,虽然在利用上增加了一点点的麻烦,但这绝对地担保了系统稳定性。而且这么做还有一个好处:便是系统上可以多个PHP版本共存而相互不冲突。方便你测试代码或者框架,在各个版本PHP上的兼容性。
总之,要做一个严谨的运维,本篇还是十分推举用SCL管理你系统上的软件。