PHP8.0が出たのは、昨年11月下旬のこと。もう半年以上経過していますが、ようやくウチのCentOS8にも、PHP8.0を入れる気になりました(笑)
手順としてはそんなに大変ではないのですが、作業手順メモメモです。
PHP8.0をインストールする前の準備
PHP8.0をインストールする前の環境はこんな感じ。
# php -v
PHP 7.3.29 (cli) (built: Jun 29 2021 09:30:31) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.29, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.29, Copyright (c) 1999-2018, by Zend Technologies
この環境にPHP8.0をインストール(アップグレード)します。
まず最初に、パッケージやモジュール関係の更新をしておきます。
# dnf upgrade
Remi's Modular repository for Enterprise Linux 8 - x86_64 530 B/s | 858 B 00:01
Remi's Modular repository for Enterprise Linux 8 - x86_64 3.0 MB/s | 3.1 kB 00:00
GPG 鍵 0x5F11735A をインポート中:
Userid : "Remi's RPM repository <remi@remirepo.net>"
Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
これでよろしいですか? [y/N]: y
Remi's Modular repository for Enterprise Linux 8 - x86_64 66 kB/s | 765 kB 00:11
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 545 B/s | 858 B 00:01
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 3.0 MB/s | 3.1 kB 00:00
GPG 鍵 0x5F11735A をインポート中:
Userid : "Remi's RPM repository <remi@remirepo.net>"
Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
これでよろしいですか? [y/N]: y
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 155 kB/s | 1.9 MB 00:12
依存関係が解決しました。
行うべきことはありません。
完了しました!
2つほど、新しい鍵のインポートがありましたが、環境によっては既にインポートされていて、インストールを聞かれることはないかもしれません。
PHP8.0のパッケージがあるか確認してみます。
# dnf module list php
CentOS Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 [e] common [d] [i], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
remi-8.0が今回アクティブにしたいパッケージですね。今はremi-7.3がアクティブになっていますので、7.3の項目に[e]が付いています。
もしRemiリポジトリがない場合は、先にEPELとRemiのリポジトリをインストールします。
# dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
remi-8.0をアクティブにします。
# dnf module enable php:remi-8.0
依存関係が解決しました。
オペレーションは、モジュール 'php' ストリーム 'remi-7.3' を ストリーム 'remi-8.0' へと切り替える結果となります
エラー: モジュールの有効なストリームを切り替えることはできません。
モジュールからインストールされた全てのコンテンツを削除し、 'dnf module reset <module_name>' コマンドを使用してリセットすることが推奨されます。モジュールのリセット後、他のストリームをインストール可能です。
ありゃ、なにやらモジュールをリセットしないといけないようです。指示通りにやってみます。
# dnf module reset php
依存関係が解決しました。
============================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
============================================================================
モジュールプロファイルの無効化中:
php/common
モジュールの再設定中:
php
トランザクションの概要
============================================================================
これでよろしいですか? [y/N]: y
完了しました!
リセットが完了しました。もう一度remi-8.0のアクティブ化。
# dnf module enable php:remi-8.0
依存関係が解決しました。
============================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
============================================================================
モジュールストリームの有効化中:
php remi-8.0
トランザクションの概要
============================================================================
これでよろしいですか? [y/N]: y
完了しました!
お、うまくいったようです。確認してみましょう。
# dnf module list php
CentOS Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 [e] common [d], devel, minimal PHP scripting language
remi-8.0の横に[e]がつきましたので、アクティブ化されたようです。
PHP8.0をインストール
では、続いてPHP8.0をインストールします。
# dnf install php php-cli php-common
パッケージ php-7.3.29-1.el8.remi.x86_64 は既にインストールされています。
パッケージ php-cli-7.3.29-1.el8.remi.x86_64 は既にインストールされています。
パッケージ php-common-7.3.29-1.el8.remi.x86_64 は既にインストールされています。
依存関係が解決しました。
============================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
============================================================================
アップグレード:
php x86_64 8.0.8-1.el8.remi remi-modular 1.6 M
php-cli x86_64 8.0.8-1.el8.remi remi-modular 4.7 M
php-common x86_64 8.0.8-1.el8.remi remi-modular 1.2 M
置き換え php-json.x86_64 7.3.29-1.el8.remi
php-fpm x86_64 8.0.8-1.el8.remi remi-modular 1.6 M
php-mbstring x86_64 8.0.8-1.el8.remi remi-modular 524 k
php-mysqlnd x86_64 8.0.8-1.el8.remi remi-modular 260 k
php-opcache x86_64 8.0.8-1.el8.remi remi-modular 761 k
php-pdo x86_64 8.0.8-1.el8.remi remi-modular 154 k
php-xml x86_64 8.0.8-1.el8.remi remi-modular 237 k
依存関係のインストール:
libsodium x86_64 1.0.18-2.el8 epel 162 k
弱い依存関係のインストール:
php-sodium x86_64 8.0.8-1.el8.remi remi-modular 93 k
トランザクションの概要
============================================================================
インストール 2 パッケージ
アップグレード 9 パッケージ
ダウンロードサイズの合計: 11 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/11): libsodium-1.0.18-2.el8.x86_64.rpm 1.4 MB/s | 162 kB 00:00
(2/11): php-sodium-8.0.8-1.el8.remi.x86_64.rpm 72 kB/s | 93 kB 00:01
(3/11): php-common-8.0.8-1.el8.remi.x86_64.rpm 90 kB/s | 1.2 MB 00:14
(4/11): php-8.0.8-1.el8.remi.x86_64.rpm 99 kB/s | 1.6 MB 00:16
(5/11): php-mbstring-8.0.8-1.el8.remi.x86_64.rpm 64 kB/s | 524 kB 00:08
(6/11): php-mysqlnd-8.0.8-1.el8.remi.x86_64.rpm 59 kB/s | 260 kB 00:04
(7/11): php-fpm-8.0.8-1.el8.remi.x86_64.rpm 96 kB/s | 1.6 MB 00:17
(8/11): php-pdo-8.0.8-1.el8.remi.x86_64.rpm 98 kB/s | 154 kB 00:01
(9/11): php-xml-8.0.8-1.el8.remi.x86_64.rpm 92 kB/s | 237 kB 00:02
(10/11): php-opcache-8.0.8-1.el8.remi.x86_64.rpm 63 kB/s | 761 kB 00:12
(11/11): php-cli-8.0.8-1.el8.remi.x86_64.rpm 74 kB/s | 4.7 MB 01:05
----------------------------------------------------------------------------
合計 171 kB/s | 11 MB 01:07
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
scriptletの実行中: php-common-8.0.8-1.el8.remi.x86_64 1/1
scriptletの実行中: php-common-8.0.8-1.el8.remi.x86_64 1/21
アップグレード中 : php-common-8.0.8-1.el8.remi.x86_64 1/21
アップグレード中 : php-pdo-8.0.8-1.el8.remi.x86_64 2/21
:
:
:
検証 : php-xml-8.0.8-1.el8.remi.x86_64 20/21
検証 : php-xml-7.3.29-1.el8.remi.x86_64 21/21
アップグレード済み:
php-8.0.8-1.el8.remi.x86_64 php-cli-8.0.8-1.el8.remi.x86_64
php-common-8.0.8-1.el8.remi.x86_64 php-fpm-8.0.8-1.el8.remi.x86_64
php-mbstring-8.0.8-1.el8.remi.x86_64 php-mysqlnd-8.0.8-1.el8.remi.x86_64
php-opcache-8.0.8-1.el8.remi.x86_64 php-pdo-8.0.8-1.el8.remi.x86_64
php-xml-8.0.8-1.el8.remi.x86_64
インストール済み:
libsodium-1.0.18-2.el8.x86_64 php-sodium-8.0.8-1.el8.remi.x86_64
完了しました!
インストールが終わったら、バージョンの確認です。
# php -v
PHP 8.0.8 (cli) (built: Jun 29 2021 07:41:19) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.8, Copyright (c) Zend Technologies
with Zend OPcache v8.0.8, Copyright (c), by Zend Technologies
無事インストールされました。お疲れ様でした!
初稿:2021年7月14日
コメント