CentOS Stream 8 にPHP7.4をDNFでインストール

CentOS Stream 8 にPHPをDNFでインストールしていってみたいと思います。

今回は、PHPの最新版であるPHP7.4をインストールします。

CentOS Stream 8 を dnf でそのままインストールすると PHP7.2 になります。
remi を使うことで、dnf インストールで PHP7.4 が選択可能になります。

ソースインストールではなく、 dnf インストールですので、ソースインストールをお探しの場合は下記をご覧ください。
PHP7.4.6をCentOS7にソースインストール

なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。

環境

実施日2021-08-12
サーバVMware ESXi 6.7 U3
OSCentOS Stream 8
cat /etc/redhat-release
CentOS Stream release 8

PHP7.4のインストール

remiからインストールします。

remiをまだ設定していない場合はこちら

選択可能なバージョンを確認してみます。

dnf module list php
CentOS Stream 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        common [d], devel, minimal      PHP scripting language

AppStream では、7.2 がデフォルトで 7.3、7.4 も可ですが、Remi では、8.0 を選択可能になっています。

ということで、PHP7.4 をインストールします。

dnf module install php:remi-7.4
# 次のエラーが出る場合
# libonig.so.105()(64bit) が提供されません php-mbstring-7.4.22-1.el8.remi.x86_64 に必要です
# 鬼車をインストール
dnf --enablerepo=remi install oniguruma5php

余談 (必要になったときに再確認します)
▼でバージョンの切り替え

dnf module reset php:remi-7.4
dnf module install php:remi-7.3

確認

# バージョン
php -v

# php.ini の場所
php -i | grep php.ini

# php-fpm の場所
which php-fpm

# php-fpm のバージョン
php-fpm -v

php-fpm の設定

# 現在の状態を確認
systemctl status php-fpm

# 起動
systemctl start php-fpm

# 終了
systemctl stop php-fpm

# 自動起動の有効化
systemctl enable php-fpm

# 自動起動の解除
systemctl disable php-fpm

php-zip

dnf install php-zip

PHPを実行して、次のようなエラーが出た場合にインストールします。
zip機能を使わないPHPプログラムだとインストールしなくてもOKです。

PHP Fatal error:  Uncaught Error: Class 'ZipArchive' not found in ・・・

mysql

dnf install php-mysqlnd

gd

dnf install php-gd

その他

必要に応じて

dnf install php-xmlrpc
dnf install php-pecl-mcrypt
dnf install php-opcache
dnf install php-pecl-apcu
dnf install php-pecl-zip
dnf install php-pear