このセクションでは、PHP のモジュールをバージョンアップの方法について、紹介します。WordPress のプラグインによっては、PHP のバージョンが古いとプラグイン機能が使えない場合があるので、その際は PHP のバージョンアップが必要となります。

ここでは、PHP 5.4 系 から 7.1 系へのバージョンアップを紹介します。

現在インストールされている PHP のバージョンを確認します。

[root@localhost ~]# php -v
PHP 5.4.16 (cli) (built: Apr 12 2018 19:02:01) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
[root@localhost ~]# 

現在の PHP 設定ファイル( /etc/php.ini )を別の場所にコピーしておきます。バージョンアップ後に PHP 設定ファイルを戻す際に使用します。

[root@localhost ~]# cp -rp /etc/php.ini /tmp/
[root@localhost ~]# 

現在インストールされている PHP をアンインストールします。

[root@localhost ~]# yum remove php-*
読み込んだプラグイン:fastestmirror
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php.x86_64 0:5.4.16-46.el7 を 削除
---> パッケージ php-cli.x86_64 0:5.4.16-46.el7 を 削除
---> パッケージ php-common.x86_64 0:5.4.16-46.el7 を 削除
---> パッケージ php-mbstring.x86_64 0:5.4.16-46.el7 を 削除
---> パッケージ php-mysql.x86_64 0:5.4.16-46.el7 を 削除
---> パッケージ php-pdo.x86_64 0:5.4.16-46.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================
 Package                      アーキテクチャー       バージョン                     リポジトリー           容量
================================================================================================================
削除中:
 php                          x86_64                 5.4.16-46.el7                  @base                 4.4 M
 php-cli                      x86_64                 5.4.16-46.el7                  @base                 8.8 M
 php-common                   x86_64                 5.4.16-46.el7                  @base                 3.8 M
 php-mbstring                 x86_64                 5.4.16-46.el7                  @base                 1.3 M
 php-mysql                    x86_64                 5.4.16-46.el7                  @base                 232 k
 php-pdo                      x86_64                 5.4.16-46.el7                  @base                 193 k

トランザクションの要約
================================================================================================================
削除  6 パッケージ

インストール容量: 19 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : php-5.4.16-46.el7.x86_64                                                        1/6 
  削除中                  : php-cli-5.4.16-46.el7.x86_64                                                    2/6 
  削除中                  : php-mbstring-5.4.16-46.el7.x86_64                                               3/6 
  削除中                  : php-mysql-5.4.16-46.el7.x86_64                                                  4/6 
  削除中                  : php-pdo-5.4.16-46.el7.x86_64                                                    5/6 
  削除中                  : php-common-5.4.16-46.el7.x86_64                                                 6/6 
警告: /etc/php.ini は /etc/php.ini.rpmsave として保存されました。
  検証中                  : php-mysql-5.4.16-46.el7.x86_64                                                  1/6 
  検証中                  : php-pdo-5.4.16-46.el7.x86_64                                                    2/6 
  検証中                  : php-cli-5.4.16-46.el7.x86_64                                                    3/6 
  検証中                  : php-mbstring-5.4.16-46.el7.x86_64                                               4/6 
  検証中                  : php-5.4.16-46.el7.x86_64                                                        5/6 
  検証中                  : php-common-5.4.16-46.el7.x86_64                                                 6/6 

削除しました:
  php.x86_64 0:5.4.16-46.el7            php-cli.x86_64 0:5.4.16-46.el7     php-common.x86_64 0:5.4.16-46.el7  
  php-mbstring.x86_64 0:5.4.16-46.el7   php-mysql.x86_64 0:5.4.16-46.el7   php-pdo.x86_64 0:5.4.16-46.el7     

完了しました!
[root@localhost ~]# 

アンインストール後、PHP がインストールされていないことを確認します。

[root@localhost ~]# rpm -qa | grep php
[root@localhost ~]# 

新しいバージョンの PHP をインストールするために、EPEL と REMI のリポジトリを追加します。

[root@localhost ~]# yum install epel-release
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
base                                                                                     | 3.6 kB  00:00:00     
extras                                                                                   | 3.4 kB  00:00:00     
updates                                                                                  | 3.4 kB  00:00:00     
(1/2): extras/7/x86_64/primary_db                                                        | 154 kB  00:00:00     
(2/2): updates/7/x86_64/primary_db                                                       | 1.3 MB  00:00:02     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ epel-release.noarch 0:7-11 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================
 Package                        アーキテクチャー         バージョン              リポジトリー              容量
================================================================================================================
インストール中:
 epel-release                   noarch                   7-11                    extras                    15 k

トランザクションの要約
================================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 15 k
インストール容量: 24 k
Is this ok [y/d/N]: y
Downloading packages:
epel-release-7-11.noarch.rpm                                                             |  15 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : epel-release-7-11.noarch                                                        1/1 
  検証中                  : epel-release-7-11.noarch                                                        1/1 

インストール:
  epel-release.noarch 0:7-11                                                                                    

完了しました!
[root@localhost ~]# 
[root@localhost ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
http://rpms.famillecollet.com/enterprise/remi-release-7.rpm を取得中
警告: /var/tmp/rpm-tmp.oQjawI: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 00f97f56: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:remi-release-7.5-2.el7.remi      ################################# [100%]
[root@localhost ~]# 

バージョン7.1 系の PHP を インストールします。

[root@localhost ~]# yum install --disablerepo=* --enablerepo=remi,remi-php71 php
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * remi: ftp.riken.jp
 * remi-php71: ftp.riken.jp
remi                                                                                     | 3.0 kB  00:00:00     
remi-php71                                                                               | 3.0 kB  00:00:00     
(1/2): remi-php71/primary_db                                                             | 232 kB  00:00:05     
(2/2): remi/primary_db                                                                   | 2.3 MB  00:00:37     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php.x86_64 0:7.1.25-1.el7.remi を インストール
--> 依存性の処理をしています: php-cli(x86-64) = 7.1.25-1.el7.remi のパッケージ: php-7.1.25-1.el7.remi.x86_64
--> 依存性の処理をしています: php-common(x86-64) = 7.1.25-1.el7.remi のパッケージ: php-7.1.25-1.el7.remi.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ php-cli.x86_64 0:7.1.25-1.el7.remi を インストール
---> パッケージ php-common.x86_64 0:7.1.25-1.el7.remi を インストール
--> 依存性の処理をしています: php-json(x86-64) = 7.1.25-1.el7.remi のパッケージ: php-common-7.1.25-1.el7.remi.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ php-json.x86_64 0:7.1.25-1.el7.remi を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================
 Package                  アーキテクチャー     バージョン                        リポジトリー              容量
================================================================================================================
インストール中:
 php                      x86_64               7.1.25-1.el7.remi                 remi-php71               3.0 M
依存性関連でのインストールをします:
 php-cli                  x86_64               7.1.25-1.el7.remi                 remi-php71               4.6 M
 php-common               x86_64               7.1.25-1.el7.remi                 remi-php71               1.0 M
 php-json                 x86_64               7.1.25-1.el7.remi                 remi-php71                61 k

トランザクションの要約
================================================================================================================
インストール  1 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 8.6 M
インストール容量: 32 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/remi-php71/packages/php-json-7.1.25-1.el7.remi.x86_64.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 00f97f56: NOKEY
php-json-7.1.25-1.el7.remi.x86_64.rpm の公開鍵がインストールされていません
(1/4): php-json-7.1.25-1.el7.remi.x86_64.rpm                                             |  61 kB  00:00:01     
(2/4): php-common-7.1.25-1.el7.remi.x86_64.rpm                                           | 1.0 MB  00:00:24     
(3/4): php-7.1.25-1.el7.remi.x86_64.rpm                                                  | 3.0 MB  00:00:58     
(4/4): php-cli-7.1.25-1.el7.remi.x86_64.rpm                                              | 4.6 MB  00:00:59     
----------------------------------------------------------------------------------------------------------------
合計                                                                            148 kB/s | 8.6 MB  00:00:59     
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi から鍵を取得中です。
Importing GPG key 0x00F97F56:
 Userid     : "Remi Collet <RPMS@FamilleCollet.com>"
 Fingerprint: 1ee0 4cce 88a4 ae4a a29a 5df5 004e 6f47 00f9 7f56
 Package    : remi-release-7.5-2.el7.remi.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告: RPMDB は yum 以外で変更されました。
  インストール中          : php-json-7.1.25-1.el7.remi.x86_64                                               1/4 
  インストール中          : php-common-7.1.25-1.el7.remi.x86_64                                             2/4 
  インストール中          : php-cli-7.1.25-1.el7.remi.x86_64                                                3/4 
  インストール中          : php-7.1.25-1.el7.remi.x86_64                                                    4/4 
  検証中                  : php-7.1.25-1.el7.remi.x86_64                                                    1/4 
  検証中                  : php-common-7.1.25-1.el7.remi.x86_64                                             2/4 
  検証中                  : php-cli-7.1.25-1.el7.remi.x86_64                                                3/4 
  検証中                  : php-json-7.1.25-1.el7.remi.x86_64                                               4/4 

インストール:
  php.x86_64 0:7.1.25-1.el7.remi                                                                                

依存性関連をインストールしました:
  php-cli.x86_64 0:7.1.25-1.el7.remi php-common.x86_64 0:7.1.25-1.el7.remi php-json.x86_64 0:7.1.25-1.el7.remi

完了しました!
[root@localhost ~]# 

PHP がインストールされたことを確認します。

[root@localhost ~]# rpm -qa | grep php
php-common-7.1.25-1.el7.remi.x86_64
php-7.1.25-1.el7.remi.x86_64
php-json-7.1.25-1.el7.remi.x86_64
php-cli-7.1.25-1.el7.remi.x86_64
[root@localhost ~]# 

PHP のバージョンを確認します。

[root@localhost ~]# php -v
PHP 7.1.25 (cli) (built: Dec  5 2018 11:35:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
[root@localhost ~]# 

その他必要となる PHP 関連パッケージをインストールします。

[root@localhost ~]# yum install --disablerepo=* --enablerepo=remi,remi-php71 php-mysqlnd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * remi: ftp.riken.jp
 * remi-php71: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php-mysqlnd.x86_64 0:7.1.25-1.el7.remi を インストール
--> 依存性の処理をしています: php-pdo(x86-64) = 7.1.25-1.el7.remi のパッケージ: php-mysqlnd-7.1.25-1.el7.remi.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ php-pdo.x86_64 0:7.1.25-1.el7.remi を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================
 Package                   アーキテクチャー     バージョン                       リポジトリー              容量
================================================================================================================
インストール中:
 php-mysqlnd               x86_64               7.1.25-1.el7.remi                remi-php71               230 k
依存性関連でのインストールをします:
 php-pdo                   x86_64               7.1.25-1.el7.remi                remi-php71               124 k

トランザクションの要約
================================================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 354 k
インストール容量: 1.2 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): php-mysqlnd-7.1.25-1.el7.remi.x86_64.rpm                                          | 230 kB  00:00:04     
(2/2): php-pdo-7.1.25-1.el7.remi.x86_64.rpm                                              | 124 kB  00:00:12     
----------------------------------------------------------------------------------------------------------------
合計                                                                             28 kB/s | 354 kB  00:00:12     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : php-pdo-7.1.25-1.el7.remi.x86_64                                                1/2 
  インストール中          : php-mysqlnd-7.1.25-1.el7.remi.x86_64                                            2/2 
  検証中                  : php-mysqlnd-7.1.25-1.el7.remi.x86_64                                            1/2 
  検証中                  : php-pdo-7.1.25-1.el7.remi.x86_64                                                2/2 

インストール:
  php-mysqlnd.x86_64 0:7.1.25-1.el7.remi                                                                        

依存性関連をインストールしました:
  php-pdo.x86_64 0:7.1.25-1.el7.remi                                                                            

完了しました!
[root@localhost ~]# 
最初にコピーした PHP 設定ファイル を見て、PHP 設定ファイルを元の状態に戻します。実際の環境によって設定は異なるため、ここでは省略します。 
[root@localhost ~]# vi /etc/php.ini

PHP 環境を反映させるために、Web サービス( HTTPD )を再起動します。

■ 再起動
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# 

■ 起動状態の確認
[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 木 2018-12-06 23:05:36 JST; 15s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 3730 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 3735 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─3735 /usr/sbin/httpd -DFOREGROUND
           ├─3736 /usr/sbin/httpd -DFOREGROUND
           ├─3737 /usr/sbin/httpd -DFOREGROUND
           ├─3738 /usr/sbin/httpd -DFOREGROUND
           ├─3739 /usr/sbin/httpd -DFOREGROUND
           └─3740 /usr/sbin/httpd -DFOREGROUND

12月 06 23:05:36 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
12月 06 23:05:36 localhost.localdomain httpd[3735]: AH00558: httpd: Could not reliably determine the serv...age
12月 06 23:05:36 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#