Red Hat Enterprise Linux release 8にPHP8をインストールします。

以前、CentOS7にPHP8をインストールする記事を書きました。
https://minokamo.tokyo/2021/02/18/3390/
本日は、RHEL8にPHP8をインストールします。CentOS8でも同じであると思います。
CentOS7と少しだけ違うので記事にしました。

それでは進めていきましょう。
PHPのインストールコマンドを打つと、PHP7がインストールされるのでリポジトリを追加します。
リポジトリにどんなものが追加されているか確認します。
PHP8をインストールするにはEPELとREMIの2つのリポジトリが必要だということです。

sudo dnf repolist all

ol8_developer_EPELが存在するが無効になっています。

有効にします。
ただし、オリジナルと少し違いがあります。後々失敗するようならオリジナルをインストールすることにします。

sudo yum-config-manager --enable ol8_developer_EPEL

EPELとは(https://fedoraproject.org/wiki/EPEL/ja)
エンタープライズ Linux 用の拡張パッケージ(EPEL) は、 Red Hat Enterprise Linux (RHEL) 向けの高品質なアドオンパッケージであり、CentOSやScientific Linux (SL) のようなRHELからスピンオフしたディストリビューションと互換性のある、Fedoraプロジェクトで有志によって作成されたパッケージになります。FedoraはRHELのアップストリームであり、EPEL のアドオンパッケージは主に RHEL向けにビルドされたFedoraリポジトリをソースとしています。

次は、REMIレポジトリを追加します。次のURLにアクセスします。
https://rpms.remirepo.net/
emi-release-8.rpmというリンクを右クリックしてURLをコピーしておきます。


下記のコマンドを入力しますが、URLの部分がコピーしておいたものとなります。

sudo dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

エラーが発生しました。

Error:
Problem: conflicting requests
nothing provides epel-release = 8 needed by remi-release-8.3-1.el8.remi.noarch

オリジナルのEPELをインストールします。

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

先ほどと同様にリストを表示すると、EPELがインストール済みで有効になっているので、再度REMIリポジトリをインストールします。

今度はうまくいきました。
利用可能なPHPのバージョンを一覧表示します。

sudo dnf module list php

普通にインストールするとphp7がインストールされるのでREMIを有効にします。

sudo dnf module enable php:remi-8.0

これでPHP8のインストール準備は整いました。

インストールします。ついでにphp-fpmもインストールします。

sudo dnf install php php-cli php-common php-fpm

バージョンを確認するには下記のコマンドを入力します。

php -v

初期値ではPHPに制限があるのでPHP.iniを編集します。php.iniファイルを検索します。

php -i | grep php.ini

etc直下にあることがわかったので編集します。ここでは次のようにしました。

sudo vi /etc/php.ini

upload_max_filesize = 100M
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8

さらにPHPの処理速度を向上するのに重要なopcacheの記述を見ると、etc/php.dにある10-opcache.iniを参照するようにとのことなので見てみます。

cd /etc/php.d
sudo vi 10-opcache.ini

opcacheは有効になっているようです。PHP8から利用できるようになったjitの記述はないようです。jitも高速化に役立つものみたいです。

php -i | grep JIT

PCRE JIT Support => enabled
PCRE JIT Target => x86 64bit (little endian + unaligned)
JIT => Disabled

無効になっているので10-opcache.iniファイルにバッファーサイズを記述してみました。

opcache.jit_buffer_size=32M

今度はjitがOnと表示されたのですが、これでいいかは不明です。

PCRE JIT Support => enabled
PCRE JIT Target => x86 64bit (little endian + unaligned)
JIT => On

コメント

タイトルとURLをコピーしました