[root@localhost]# yum install centos-release-scl-rh
[root@localhost]# yum search php...php54-runtime.x86_64 php55-runtime.x86_64 rh-php56-runtime.x86_64 rh-php70-runtime.x86_64...
rh- 接頭辞は RedHat を意味し、これがサードパーティのライブラリによって提供されるものではなく、提供される公式の PHP であることを示します。著者は、このプレフィックス仕様が策定されたのは 2015 年頃で、PHP5.4 および 5.5 はその前にリリースされたと推測しています。プログラムがハングします)、rh- 接頭辞がありません。
次に、PHP7.0 をインストールします。[root@localhost]# yum install rh-php70
$PATH 変数に追加されないため、ソフトウェアを直接実行することはできません。 . コマンドの。 scl enable コマンドを使用して実行を表示する必要があります:
まず、SCL によってどのようなソフトウェアがインストールされているかを確認します:[root@localhost]# scl -lrh-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 Technologies
bash コマンドを直接実行すると、新しく開かれたシェルが自動的に 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 Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies [root@localhost ~]# php -m[PHP Modules] bz2 calendar...
scl enable この管理ソフトウェアの方法は使用に少し手間がかかりますが、システムの安定性は絶対に保証されます。これを行うことにはもう 1 つの利点があります。それは、複数の PHP バージョンが互いに競合することなくシステム上で共存できることです。さまざまなバージョンの PHP でコードまたはフレームワークの互換性をテストすると便利です。
つまり、厳密な運用とメンテナンスを行う場合は、この記事でも SCL を使用してシステム上のソフトウェアを管理することを強くお勧めします。 CentOS の PHP バージョンは非常に古いため、一部のフレームワークの PHP バージョン要件を満たすことができません。その結果、EPEL、RPM Fusion、Remi など、新しいバージョンの PHP を提供する多くのサードパーティ ソフトウェア ライブラリが登場しました。私たちのシステムを時代に合わせて進めましょう。 ただし、サードパーティのソフトウェア ライブラリにはいくつかの欠点があります: まず、サードパーティのソフトウェア ライブラリは CentOS によって正式にテストされておらず、ソフトウェアをインストールするときにシステムの一部のコア ファイルが置き換えられ、システムが不安定になる可能性があります。 。第 2 に、サードパーティのライブラリによってインストールされるソフトウェアは互換性を保証していない可能性があり、システムをアップグレードすると特定のソフトウェアが使用できなくなる可能性があります。 したがって、この記事では、SCL (Software Collections) ソフトウェア ライブラリを使用して、上位バージョンの PHP をインストールすることをお勧めします。 SCL は CentOS の公式ソフトウェア ライブラリに属しており、十分にテストされており、ソフトウェアのインストール時にシステムのコア ファイルを置き換えないため、システムの安定性が保証されます。 SCL のインストールは非常に簡単で、コマンド 1 つだけで十分です:[root@localhost]# yum install centos-release-scl-rh
[root@localhost]# yum search php...php54-runtime.x86_64 php55-runtime.x86_64 rh-php56-runtime.x86_64 rh-php70-runtime.x86_64...
rh- プレフィックスは RedHat を意味し、これがサードパーティ ライブラリによって提供されるものではなく、公式に提供される PHP であることを示します。著者は、このプレフィックス仕様が策定されたのは 2015 年頃で、PHP5.4 および 5.5 はその前にリリースされたと推測しています。プログラムがハングします)、rh- 接頭辞がありません。
次に、PHP7.0 をインストールします。[root@localhost]# yum install rh-php70
此时如果你运行php命令,系统依然会提示你command not found。这是因为,SCL的风格就是把软件对系统的影响减少到最小,甚至安装完PHP,php命令都不会被添加到 $PATH 变量中,所以你没法直接执行软件中的命令的。需要通过 scl enable 命令显示执行:
先看看SCL安装了哪些软件:
[root@localhost]# scl -lrh-php70
可以看到我们在系统安装了一个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 Technologies
命令成功执行了。要是每一条命令都要这么执行,太麻烦了!不要紧,你可以不用每次执行一条命令,而是直接执行 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 Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies [root@localhost ~]# php -m[PHP Modules] bz2 calendar...
SCL以 scl enable 方式管理软件,虽然在使用上增加了一点点的麻烦,但这绝对地保证了系统稳定性。而且这么做还有一个好处:就是系统上可以多个PHP版本共存而互相不冲突。方便你测试代码或者框架,在各个版本PHP上的兼容性。
总之,要做一个严谨的运维,本篇还是十分推荐用SCL管理你系统上的软件。
推荐教程:《php视频教程》
以上がCentOS に PHP7 をインストールする正しい方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。