PHPを7.4にUpgrade(CentOS 7.7)

1 views

実現する機能

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

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

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

#epel-releaseインストール
[root@e4vlm0ra ~]# yum -y install epel-release
インストール:
epel-release.noarch 0:7-9

完了しました!

#Remi’s RPM repositoryをインストール
[root@e4vlm0ra ~]# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

インストール:
remi-release.noarch 0:7.3-2.el7.remi

完了しました!

PHPの更新手順

#現在インストールされているPHPファイルを確認。
[root@eycwl8s4 ~]# rpm -qa | grep php
php-gd-7.2.30-1.el7.remi.x86_64
php-fpm-7.2.30-1.el7.remi.x86_64
php-fedora-autoloader-1.0.1-2.el7.remi.noarch
php-mbstring-7.2.30-1.el7.remi.x86_64
php-common-7.2.30-1.el7.remi.x86_64
php-mysqlnd-7.2.30-1.el7.remi.x86_64
php-pear-1.10.11-1.el7.remi.noarch
php-cli-7.2.30-1.el7.remi.x86_64
php-devel-7.2.30-1.el7.remi.x86_64
php-pecl-apcu-5.1.18-1.el7.remi.7.2.x86_64
php-json-7.2.30-1.el7.remi.x86_64
php-7.2.30-1.el7.remi.x86_64
php-intl-7.2.30-1.el7.remi.x86_64
php-pdo-7.2.30-1.el7.remi.x86_64
php-pecl-mcrypt-1.0.3-1.el7.remi.7.2.x86_64
php-xml-7.2.30-1.el7.remi.x86_64
php-process-7.2.30-1.el7.remi.x86_64

#現在インストールされているPHPファイルを削除。
[root@eycwl8s4 ~]# yum -y remove php-*


削除しました:
php.x86_64 0:7.2.30-1.el7.remi
php-cli.x86_64 0:7.2.30-1.el7.remi
php-common.x86_64 0:7.2.30-1.el7.remi
php-devel.x86_64 0:7.2.30-1.el7.remi
php-fedora-autoloader.noarch 0:1.0.1-2.el7.remi
php-fpm.x86_64 0:7.2.30-1.el7.remi
php-gd.x86_64 0:7.2.30-1.el7.remi
php-intl.x86_64 0:7.2.30-1.el7.remi
php-json.x86_64 0:7.2.30-1.el7.remi
php-mbstring.x86_64 0:7.2.30-1.el7.remi
php-mysqlnd.x86_64 0:7.2.30-1.el7.remi
php-pdo.x86_64 0:7.2.30-1.el7.remi
php-pear.noarch 1:1.10.11-1.el7.remi
php-pecl-apcu.x86_64 0:5.1.18-1.el7.remi.7.2
php-pecl-mcrypt.x86_64 0:1.0.3-1.el7.remi.7.2
php-process.x86_64 0:7.2.30-1.el7.remi
php-xml.x86_64 0:7.2.30-1.el7.remi

完了しました!

#remiのリポジトリから7.4のPHPをインストール。

[root@eycwl8s4 ~]# yum install -y --enablerepo=epel,remi,remi-php74 php 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

インストール:
php.x86_64 0:7.4.5-1.el7.remi
php-cli.x86_64 0:7.4.5-1.el7.remi
php-common.x86_64 0:7.4.5-1.el7.remi
php-devel.x86_64 0:7.4.5-1.el7.remi
php-fpm.x86_64 0:7.4.5-1.el7.remi
php-gd.x86_64 0:7.4.5-1.el7.remi
php-intl.x86_64 0:7.4.5-1.el7.remi
php-mbstring.x86_64 0:7.4.5-1.el7.remi
php-mysqlnd.x86_64 0:7.4.5-1.el7.remi
php-pdo.x86_64 0:7.4.5-1.el7.remi
php-pear.noarch 1:1.10.12-1.el7.remi
php-pecl-apcu.x86_64 0:5.1.18-1.el7.remi.7.4
php-pecl-mcrypt.x86_64 0:1.0.3-1.el7.remi.7.4
php-process.x86_64 0:7.4.5-1.el7.remi
php-xml.x86_64 0:7.4.5-1.el7.remi

依存性関連をインストールしました:
libsodium.x86_64 0:1.0.18-1.el7.remi
php-fedora-autoloader.noarch 0:1.0.1-2.el7.remi
php-json.x86_64 0:7.4.5-1.el7.remi
php-sodium.x86_64 0:7.4.5-1.el7.remi

完了しました!

#現在インストールされているPHPファイルを確認。
[root@eycwl8s4 ~]# rpm -qa | grep php
php-fpm-7.4.5-1.el7.remi.x86_64
php-process-7.4.5-1.el7.remi.x86_64
php-pdo-7.4.5-1.el7.remi.x86_64
php-devel-7.4.5-1.el7.remi.x86_64
php-mbstring-7.4.5-1.el7.remi.x86_64
php-fedora-autoloader-1.0.1-2.el7.remi.noarch
php-intl-7.4.5-1.el7.remi.x86_64
php-common-7.4.5-1.el7.remi.x86_64
php-7.4.5-1.el7.remi.x86_64
php-gd-7.4.5-1.el7.remi.x86_64
php-json-7.4.5-1.el7.remi.x86_64
php-sodium-7.4.5-1.el7.remi.x86_64
php-pecl-apcu-5.1.18-1.el7.remi.7.4.x86_64
php-xml-7.4.5-1.el7.remi.x86_64
php-mysqlnd-7.4.5-1.el7.remi.x86_64
php-pear-1.10.12-1.el7.remi.noarch
php-pecl-mcrypt-1.0.3-1.el7.remi.7.4.x86_64

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

#自動起動をONにする。
[root@eycwl8s4 ~]# 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@eycwl8s4 ~]# 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@eycwl8s4 ~]# systemctl restart nginx php-fpm

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

以上