RHEL 8 / CentOS 8 Linuxシステムでは、ソフトウェアの編成方法が変更されました。重要なパッケージがBaseOs
に含まれるようになりました。 リポジトリ、AppStream
1つには、モジュールに編成され、配布リリースサイクルとは関係なく更新される、最も一般的に使用されるアプリケーションとプログラミング言語の複数のバージョンが含まれています。この戦略は、特定のソフトウェアの特定のリリース、古すぎるリリース、または最新のリリースにとらわれる問題を回避するために採用されました。
このチュートリアルでは、次のことを学びます。
- PHPをRHEL8/CentOS8にインストールする方法
- RHEL 8 /CentOS8のソフトウェアモジュールとは
- PHPモジュールの異なるバージョンをインストールして切り替える方法
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
このチュートリアルに従うために追加のソフトウェアは必要ありません | |
root権限でコマンドを実行する権限。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
PHPとは何ですか?
PHP(PHP:Hypertext Preprocessor)は、多くのプレゼンテーションを必要としません。この汎用プログラミング言語は、もともとRasmus Lerdorfによって1994年に作成され、PHPライセンスの下でオープンソースソフトウェアとしてリリースされています。アプリケーションの主な分野はWebですが、この言語は他のコンテキストでも使用できます。 RHEL 8 / CentOS 8には、2つの主要なリポジトリが有効になっています:BaseOs
およびAppStream
。
1つ目は、ディストリビューション自体のライフサイクルに従うディストリビューションのコアパッケージを
含みます。 2つ目は、メインのディストリビューションとは関係なく更新される、いくつかのユーザースペースアプリケーションのさまざまなバージョンが含まれています。後者に含まれるソフトウェアは、modules
で構成されています。 。各モジュールは、使用可能なものを切り替えることを可能にするアプリケーションの異なるバージョンを提供します(ただし、それらを同時にインストールすることはできません)。このチュートリアルでは、PHPをインストールし、RHEL 8 /CentOS8ディストリビューションでこの言語の異なるバージョンを切り替えるのがいかに簡単かを説明します。
どのPHPバージョンですか?
PHPの5.6バージョンは現在正式に廃止されていますが(2019年1月1日にEOLに達しました)、プログラミング言語の3つのブランチが現在維持されています:7.1
、実際にはセキュリティ修正のみを受け取り、2019年12月1日までパッチが適用され、バージョン7.2
および7.3
、2020年11月30日と2021年12月6日までそれぞれサポートされます。
AppStream
からRHEL8/CentOS8でデフォルトで提供されるPHPのバージョン リポジトリは7.2.11
です 、dnf info php
を実行して確認できるため 次の出力を返すコマンド:
Available Packages Name : php Version : 7.2.11 Release : 1.el8+2002+9409c40c Arch : x86_64 Size : 1.5 M Source : php-7.2.11-1.el8+2002+9409c40c.src.rpm Repo : rhel-8-for-x86_64-appstream-beta-rpms Summary : PHP scripting language for creating dynamic web sites URL : http://www.php.net/ License : PHP and Zend and BSD and MIT and ASL 1.0 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.
AppStream
で利用可能な他のPHPバージョンはありますか リポジトリ?この質問に答えるために、dnfの専用サブコマンドmodule
を実行できます。 、list
を使用して、PHPモジュールに関する情報を尋ねます。 アクション:
$ sudo dnf module list php Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) Name Stream Profiles Summary php 7.1 devel, minimal, default [d] PHP scripting language php 7.2 [d] devel, minimal, default [d] PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
dnf module list
を実行する場合 コマンドでは、デフォルトで、使用可能なすべてのモジュールが表示されます。クエリを特定のモジュールのみに制限するために、コマンドにモジュール名を指定します。この場合、バージョン7.1
をカバーする2つのストリームがPHPモジュールに存在することがわかります。 および7.2
言語と関連ライブラリの。ご覧のとおり、後者のバージョンはデフォルトでインストールされるバージョンです。上記で実行したコマンドの出力では、[d]
を使用してこれを強調表示しています。 2番目の列にマークを付けます。これは、凡例で指定されているように、default
を表します。 。
出力のもう1つの興味深い部分は、Profiles
です。 列。ストリームで使用可能なプロファイルが報告されます。複数のプロファイルを同時にインストールでき、それぞれが異なるパッケージのセットを理解します。 [d]
ここでは、ストリームのインストール時に選択されたデフォルトのプロファイルをマークするためにも表記が使用されます。
ソフトウェアモジュールの特定のストリームのパッケージをインストールするには、name:stream/profile
を使用する必要があります 表記。たとえば、バージョン7.1
をインストールするには PHPの場合、実行できます:
$ sudo dnf module install php:7.1/default
この場合、default
なので、プロファイル名を省略できます。 別のものが指定されていない場合は自動的に使用されます。上記で実行したのと同じコマンドを使用すると、7.1
であることがわかります。 ストリームは[e]
でマークされています 、は有効を表し、default
ストリームのプロファイルは[i]
でマークされています 、これは、ストリームのプロファイルがインストールされていることを示します:
$ sudo dnf module list php Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) Name Stream Profiles Summary php 7.1 [e] devel, minimal, default [d] [i] PHP scripting language php 7.2 [d] devel, minimal, default [d] PHP scripting language
ストリームがインストールされていて、使用可能な別のストリームに切り替えたい場合は、後者をインストールするだけです。状況に応じて、パッケージは自動的にアップグレードまたはダウングレードされます。 7.2
に切り替えるには たとえば、ストリームを実行します:
$ sudo dnf module install php:7.2/default ======================================================================================================================================================= Package Arch Version Repository Size ======================================================================================================================================================= Upgrading: php-common x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 653 k php-mbstring x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 580 k php-xml x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 188 k php-fpm x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 1.6 M php-json x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 73 k php-cli x86_64 7.2.11-1.el8+2002+9409c40c rhel-8-for-x86_64-appstream-beta-rpms 3.1 M Switching module streams: php 7.1 -> 7.2 Transaction Summary ======================================================================================================================================================= Upgrade 6 Packages Total download size: 6.2 M Is this ok [y/N]: y
同様に、特定のモジュールストリームを削除する場合は、remove
を使用できます。 「インストール」アクションの代わりにアクション。これにより、ストリームが削除されます。プロファイルを指定すると、そのプロファイルに属するパッケージのみが削除されます。それ以外の場合、ストリームのすべてのプロファイルがアクションの対象になります。たとえば、7.2
のすべてのプロファイルに属するすべてのパッケージをアンインストールするには ストリーム、単純に実行します:
$ sudo dnf module remove php:7.2
devel
に関連するパッケージのみを削除するには 代わりに、同じストリームのプロファイルを実行します:
$ sudo dnf module remove php:7.2/devel
結論
Red Hat Enterprise Linuxの新しいリリースでは、ソフトウェアの編成方法が変更されています。 BaseOs
リポジトリには、ディストリビューションのコアを表すパッケージが含まれており、そのリリースサイクルであるAppStream
に従います。 代わりに、さまざまなバージョンを提供するモジュールに編成されたユーザースペースソフトウェア、つまりインストール可能な「ストリーム」が含まれています。PHPもこの方法で提供されます。
RHEL 8 /CentOS8で
デフォルトで使用可能なPHPのバージョンは7.1.20
です。 および7.2.11
。 Remiなどの外部リポジトリから他のバージョンのプログラミング言語をインストールすることは可能ですが、他の方法で厳密に行う必要がない場合は、デフォルトのソフトウェアソースを使用することをお勧めします。