PHPを7.4にUpgrade(CentOS 8.1)

1 views

実現する機能

WordPressをインストールするとPHPが古いと怒られたので、PHPを7.1に上げたにも拘わらず、MdeiaWikiのインストーをインストールするとPHP7.1では古すぎてできませんと断られる始末。
ならば、PHPの賞味期限はいつ?とばかりに調べてみると愕然。7.1ですら2019年12月に切れてました。ということで、最新版に近いPHPを入れることに。以下はその備忘録です。

最新に近いPHPを入れる準備手順

以下ではGnome端末を使用。
紫色はキーボードから入力するコマンド(コピペした方が楽ですが、コマンドは覚えられません)、緑はコマンドや処理内容の説明、白は自動表示する部分、赤は注意書きです。

#epel-releaseインストール
[root@ufuso ~]# dnf -y install epel-release
インストール済み:
epel-release-8-5.el8.noarch

完了しました!

#Remi’s RPM repositoryをインストール
[root@ufuso ~]# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

インストール済み:
remi-release-8.0-4.el8.remi.noarch

完了しました!

PHPの更新手順

#現在インストールされているPHPファイルを確認。
[root@ufuso ~]# rpm -qa | grep php
php-pecl-zip-1.15.3-1.module_el8.1.0+209+03b9a8ff.x86_64
php-mysqlnd-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-IDNA_Convert-0.8.0-1.el8.remi.noarch
php-mbstring-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-fpm-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-simplepie-1.5.4-1.el8.remi.noarch
php-pdo-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-json-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-gd-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-intl-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-xml-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-cli-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-common-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
php-enchant-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64

#7.4のPHPをインストールできるかチェック。
[root@ufuso ~]# dnf module list php
CentOS-8 – AppStream 3.7 kB/s | 4.3 kB 00:01
CentOS-8 – Base 4.1 kB/s | 3.8 kB 00:00
CentOS-8 – Extras 2.2 kB/s | 1.5 kB 00:00
Extra Packages for Enterprise Linux Modular 8 – 12 kB/s | 9.7 kB 00:00
Remi’s Modular repository for Enterprise Linux 2.0 kB/s | 3.5 kB 00:01
Safe Remi’s RPM repository for Enterprise Linux 1.7 kB/s | 3.0 kB 00:01
RPM Fusion for EL 8 – Free – Updates 125 B/s | 3.7 kB 00:30
CentOS-8 – AppStream
Name Stream Profiles Summary
php 7.2 [d][e] common [d] [i], devel, minimal PHP scripting language
php 7.3 common, 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

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

#現在インストールされているPHPファイルをリセット。
[root@ufuso ~]# dnf module reset php
メタデータの期限切れの最終確認: 0:01:46 時間前の 2020年04月21日 18時31分13秒 に実施しました。
依存関係が解決しました。
================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
================================================================================
モジュールプロファイルの無効化:
php/common
モジュールの再設定:
php

トランザクションの概要
================================================================================
#「y」入力。
これでよろしいですか? [y/N]: y
完了しました!

#remiのリポジトリから7.4のPHPをインストール。
[root@ufuso ~]# dnf module install -y php:remi-7.4


インストール済み:
php-cli-7.4.5-1.el8.remi.x86_64 php-common-7.4.5-1.el8.remi.x86_64
php-fpm-7.4.5-1.el8.remi.x86_64 php-json-7.4.5-1.el8.remi.x86_64
php-mbstring-7.4.5-1.el8.remi.x86_64 php-xml-7.4.5-1.el8.remi.x86_64
oniguruma-6.8.2-1.el8.x86_64

完了しました!

#現在インストールされているPHPファイルを確認。
[root@ufuso ~]# rpm -qa | grep php
php-json-7.4.5-1.el8.remi.x86_64
php-fpm-7.4.5-1.el8.remi.x86_64
php-xml-7.4.5-1.el8.remi.x86_64
php-mbstring-7.4.5-1.el8.remi.x86_64
php-cli-7.4.5-1.el8.remi.x86_64
php-common-7.4.5-1.el8.remi.x86_64

#WordPress等に必要なphpを追加でインストール。

[root@ufuso ~]# dnf install php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-cli php-common php-mysql php-pear php-process php-pear php-fpm php-intl php-pecl-apcu --skip-broken

インストール済み:
php-gd-7.4.5-1.el8.remi.x86_64
php-intl-7.4.5-1.el8.remi.x86_64
php-pdo-7.4.5-1.el8.remi.x86_64
php-pear-1:1.10.12-1.el8.remi.noarch
php-pecl-apcu-5.1.18-1.el8.remi.7.4.x86_64
php-pecl-mysql-1.0.0-0.23.20190415.d7643af.el8.remi.7.4.x86_64
php-process-7.4.5-1.el8.remi.x86_64
php-fedora-autoloader-1.0.1-2.el8.remi.noarch
php-mysqlnd-7.4.5-1.el8.remi.x86_64
libicu62-62.1-3.el8.remi.x86_64

スキップしました:
php-devel-7.4.5-1.el8.remi.x86_64 php-pecl-mcrypt-1.0.3-1.el8.remi.7.4.x86_64

完了しました!

#Nginxではphp-fpmを使っているので、これをstartさせないとWordPress等は動かない。
[root@ufuso ~]# systemctl start php-fpm

#自動起動をONにする。
[root@ufuso ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

#アップロードファイルの容量が2Mに戻っているので、php.iniも再設定。
[root@ufuso ~]# vi /etc/php.ini
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
; メールの最大サイズ8Mを118Mにした例
post_max_size = 118M

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
; 添付ファイルの最大サイズ2Mを112Mにした例
upload_max_filesize = 112M

#Nginxとphp-fpmを再起動
[root@ufuso ~]# systemctl restart nginx php-fpm

WordPressやMediaWikiが使える事を確認できれば、PHPのバージョンアップは無事終了。

以上