[CentOS] CentOS8にPHP8.0をインストールする

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日

この記事をシェア

アカウントをフォロー