Resposta Editada:
TL; DR Se estiver usando todo o sistema, use IUS. Se o desenvolvimento de segmentação ou o uso de teste, use SCL.
IUS para uso seguro em todo o sistema após um fluxo de trabalho normal do administrador de sistema:
[root@localhost ~]# which php
/bin/php
[root@localhost ~]# php --version
PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
[root@localhost ~]# yum list installed | grep -i php
php.x86_64 5.4.16-42.el7 @base
php-cli.x86_64 5.4.16-42.el7 @base
php-common.x86_64 5.4.16-42.el7 @base
[root@localhost ~]# yum info php56u
...
Available Packages
Name : php56u
Arch : x86_64
Version : 5.6.29
Release : 1.ius.centos7
Size : 2.6 M
Repo : ius/x86_64
Summary : PHP scripting language for creating dynamic web sites
URL : http://www.php.net/
License : PHP and Zend and BSD
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
: easy for developers to write dynamically generated web pages. PHP also
: offers built-in database integration for several commercial and
: non-commercial database management systems, so writing a
: database-enabled webpage with PHP is fairly simple. The most common
: use of PHP coding is probably as a replacement for CGI scripts.
:
: The php package contains the module (often referred to as mod_php)
: which adds support for the PHP language to Apache HTTP Server.
[root@localhost ~]# yum update php
...
No packages marked for update
[root@localhost ~]# yum install php56u
...
Resolving Dependencies
...
--> Finished Dependency Resolution
Error: php56u conflicts with php-5.4.16-42.el7.x86_64
Error: php56u-cli conflicts with php-cli-5.4.16-42.el7.x86_64
Error: php56u-common conflicts with php-common-5.4.16-42.el7.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[root@localhost ~]# yum remove php-*
Loaded plugins: fastestmirror
Resolving Dependencies
...
Dependencies Resolved
... 3/3
Removed:
php.x86_64 0:5.4.16-42.el7 php-cli.x86_64 0:5.4.16-42.el7 php-common.x86_64 0:5.4.16-42.el7
Complete!
[root@localhost ~]# yum install php56u
...
Resolving Dependencies
...
Dependencies Resolved
... 7/7
Installed:
php56u.x86_64 0:5.6.29-1.ius.centos7
Dependency Installed:
php56u-cli.x86_64 0:5.6.29-1.ius.centos7 php56u-common.x86_64 0:5.6.29-1.ius.centos7
php56u-pear.noarch 1:1.10.1-4.ius.centos7 php56u-pecl-jsonc.x86_64 0:1.3.10-2.ius.centos7
php56u-process.x86_64 0:5.6.29-1.ius.centos7 php56u-xml.x86_64 0:5.6.29-1.ius.centos7
Complete!
[root@localhost ~]# which php
/bin/php
[root@localhost ~]# php --version
PHP 5.6.29 (cli) (built: Dec 9 2016 07:40:09)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[root@localhost ~]# yum repolist
...
repo id repo name status
base/7/x86_64 CentOS-7 - Base 9,363
*epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 11,040
extras/7/x86_64 CentOS-7 - Extras 200
ius/x86_64 IUS Community Packages for Enterprise Linux 7 - x86_64 336
updates/7/x86_64 CentOS-7 - Updates 438
repolist: 21,377
Se você for instalar um pacote para uso em todo o sistema, eu definitivamente usaria o IUS Repo porque ele é destinado a substituir pacotes de sistema (com a desinstalação dos pacotes de sistema atuais primeiro) por alternativas novas e seguras. Veja aqui . Se você quiser desenvolver e testar várias versões diferentes de pacotes, vá com o SCL, pois eles empacotam seu software em / opt e devem ser explicitamente chamados usando uma instrução include ou por caminho absoluto. Eu costumo errar ao lado de um administrador do sistema, então quando eu configuro um sistema, eu o configuro para uma única finalidade (ou seja, apenas UMA versão do PHP para o sistema). Não sou fã de executar várias versões de software em um sistema de nível de produção por motivos óbvios.
Resposta original:
IUS Repo porque é patrocinado pela Rackspace e não sobrescreve os pacotes padrão e também os instala nos locais corretos (por exemplo, /usr/sbin
vs /opt
)