CentOS8にPHP8をインストールする

最新のPHPをインストールして試したい!って時の備忘録。

remiリポジトリとdnf+moduleコマンドで最新に限らず柔軟にバージョンを選べるようで、便利になったなと。

PHPが既にインストールされている場合は削除

[root@localhost ~]# dnf remove -y php
依存関係が解決しました。
========================================================================================================================================================================
 パッケージ                            アーキテクチャー            バージョン                                                     リポジトリー                    サイズ
========================================================================================================================================================================
削除中:
 php                                   x86_64                      7.2.24-1.module_el8.2.0+313+b04d0a66                           @appstream                      4.8 M
未使用の依存関係の削除:
 nginx-filesystem                      noarch                      1:1.14.1-9.module_el8.0.0+184+e34fea82                         @appstream                        0
 php-cli                               x86_64                      7.2.24-1.module_el8.2.0+313+b04d0a66                           @appstream                      9.6 M
 php-common                            x86_64                      7.2.24-1.module_el8.2.0+313+b04d0a66                           @appstream                      6.1 M
 php-fpm                               x86_64                      7.2.24-1.module_el8.2.0+313+b04d0a66                           @appstream                      4.9 M

トランザクションの概要
========================================================================================================================================================================
削除  5 パッケージ
~~~
完了しました!

remiリポジトリをdnfでinstall

[root@localhost ~]# dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
メタデータの期限切れの最終確認: 0:32:14 時間前の 2021年05月05日 01時13分46秒 に実施しました。
remi-release-8.rpm                                                                                                                       22 kB/s |  25 kB     00:01
依存関係が解決しました。
========================================================================================================================================================================
 パッケージ                               アーキテクチャー                   バージョン                                  リポジトリー                             サイズ
========================================================================================================================================================================
インストール:
 remi-release                             noarch                             8.3-1.el8.remi                              @commandline                              25 k
依存関係のインストール:
 epel-release                             noarch                             8-8.el8                                     extras                                    23 k

トランザクションの概要
========================================================================================================================================================================
インストール  2 パッケージ
~~~
完了しました!

↓もしdnfがエラーする場合は下記で対処

remiの公開鍵を追加

[root@localhost ~]# rpm --import http://rpms.remirepo.net/RPM-GPG-KEY-remi

PHPに関わるリポジトリ情報を確認しておく

[root@localhost ~]# dnf module list php
メタデータの期限切れの最終確認: 0:00:16 時間前の 2021年05月05日 01時50分16秒 に実施しました。
CentOS Linux 8 - AppStream
Name                           Stream                               Profiles                                             Summary
php                            7.2 [d][e]                           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                             common [d], devel, minimal                           PHP scripting language

リポジトリを追加するとRemi's~以下が表示されるようになります。

PHP8を指定してインストールする

しかしそのままだとエラーする

[root@localhost ~]# dnf module install php:remi-8.0
メタデータの期限切れの最終確認: 0:02:27 時間前の 2021年05月05日 01時50分16秒 に実施しました。
依存関係が解決しました。
オペレーションは、モジュール 'php' ストリーム '7.2' を ストリーム 'remi-8.0' へと切り替える結果となります
エラー: モジュールの有効なストリームを切り替えることはできません。
モジュールからインストールされた全てのコンテンツを削除し、 'dnf module reset <module_name>' コマンドを使用してリセットすることが推奨されます。モジュールのリセット後、他のストリームをインストール可能です。

モジュールを選択してインストールしようとすると、モジュールの切り替えのためresetしろと中断してしまいます。

モジュールのresetをする

[root@localhost ~]# dnf module reset -y php
メタデータの期限切れの最終確認: 0:04:39 時間前の 2021年05月05日 01時50分16秒 に実施しました。
依存関係が解決しました。
========================================================================================================================================================================
 パッケージ                              アーキテクチャー                       バージョン                                リポジトリー                            サイズ
========================================================================================================================================================================
モジュールの再設定中:
 php

トランザクションの概要
========================================================================================================================================================================

完了しました!

改めてインストールを実行

[root@localhost ~]# dnf module install -y php:remi-8.0
メタデータの期限切れの最終確認: 0:05:51 時間前の 2021年05月05日 01時50分16秒 に実施しました。
依存関係が解決しました。
========================================================================================================================================================================
 パッケージ                            アーキテクチャー            バージョン                                                   リポジトリー                      サイズ
========================================================================================================================================================================
group/moduleパッケージをインストール:
 php-cli                               x86_64                      8.0.6-1.el8.remi                                             remi-modular                      4.7 M
 php-common                            x86_64                      8.0.6-1.el8.remi                                             remi-modular                      1.2 M
 php-fpm                               x86_64                      8.0.6-1.el8.remi                                             remi-modular                      1.6 M
 php-mbstring                          x86_64                      8.0.6-1.el8.remi                                             remi-modular                      524 k
 php-xml                               x86_64                      8.0.6-1.el8.remi                                             remi-modular                      236 k
依存関係のインストール:
 libxslt                               x86_64                      1.1.32-5.el8                                                 baseos                            250 k
 oniguruma5php                         x86_64                      6.9.6-1.el8.remi                                             remi-safe                         208 k
弱い依存関係のインストール:
 nginx-filesystem                      noarch                      1:1.14.1-9.module_el8.0.0+184+e34fea82                       appstream                          24 k
モジュールプロファイルのインストール中:
 php/common
モジュールストリームの有効化中:
 php                                                               remi-8.0

トランザクションの概要
========================================================================================================================================================================
インストール  8 パッケージ
~~~
完了しました!

ブラウザで確認する場合はApacheを再起動

もしブラウザでPHPを動かしていた場合、Apacheを再起動しておく必要があります。

[root@localhost ~]# systemctl restart httpd

再起動するとPHPが動くようになります。

スポンサーリンク
おすすめの記事