PHP7をインストールしたいのですが、Centosでは、追加のリポジトリをインストールすることによってのみそれを行うことができます。私はそれらのさまざまな(レミ、ius、webtatic)を見て、フォーラムのコメントは賛否両論です。
私は個人的な意見を求めているわけではありませんが、私が考慮すべき基準と回避すべき落とし穴について、専門家が何を選択したのかについて興味があります。
Red Hat/CentOSにさまざまなソフトウェアの最新バージョンをインストールするための最も「公式な」ソリューションは、ソフトウェアコレクションであることに注意してください。
Red Hat Software Collectionsバージョン2. はphp 5.6と7.0の両方を提供し、Red Hatによって保守され、centos-sclリポジトリーでCentOSユーザーが使用でき、 SCLo SIG によって保守されます。 。
興味深いソリューションの比較: CentOSで新しいアプリケーションを実行する
PHPの場合は、 remi repo を使用します。積極的にメンテナンスされており、メンテナーはRHのために働いています。 Software Collection としてインストールすることもできます。
私はIUSコア開発者の一人です。 IUSを使用する理由は、それがRackspaceによって提供され、複数のRackspaceエンジニアによって保守されているためです。元の質問で述べられている他のリポジトリ(RemiとWebtatic)は個人が管理しています。雇用主に関係なく、個々の副プロジェクトのバス係数は最適ではありません。
RHSCLは公式のRed Hatソリューションですが、IUSと比較するといくつかの欠点があります。
編集された回答:
TL; DRシステム全体の使用を対象とする場合は、IUSを使用します。開発またはテストの使用を対象とする場合、SCLを使用します。
通常のsysadminワークフローに従うシステム全体で安全な使用のためのIUS:
[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
システム全体で使用するパッケージをインストールする場合、IUS Repoを使用します。これは、(現在のシステムパッケージを最初にアンインストールして)システムパッケージを安全で新しい代替手段に置き換えることを目的としているためです。 こちら を参照してください。複数の異なるバージョンのパッケージを開発してテストしたい場合は、SCLを使用してください。SCLはソフトウェアを/ optにパッケージ化し、includeステートメントを使用して、または絶対パスで明示的に呼び出されるためです。私はシステム管理者の側で誤る傾向があるので、システムを構成するとき、それを単一の目的のために構成します(つまり、システムのPHPのバージョンは1つだけです)。私は明らかな理由で、本番レベルのシステムで複数のバージョンのソフトウェアを実行するファン。
元の回答:
IUS Repo Rackspaceがスポンサーであり、デフォルトのパッケージを上書きせず、正しい場所にインストールするため(/usr/sbin
対/opt
)