このセクションでは、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 ~]#