カテゴリー
ソフトウェア

最新のWordPress向けにPHPをバージョンアップする

はじめに

WordPress5.2から、PHP5.6以下のバージョンで稼働する環境にPHPをアップグレードしたほうがよい旨のメッセージが表示されるようになりました。AmazonLinuxの場合、amzn-updatesリポジトリにphp73系のパッケージが標準で用意されています。

今回、既存のphp56からphp73へアップブレードする方法を紹介します。尚、WordPress稼働環境はAmazonEC2 AmazonLinux、Nginx、PHP-FPM(FastCGI)、MariaDBとします。詳しい構築手順はこちらの投稿を参照してください。今回紹介する手順はサービス停止が発生します。サービス停止が許容できない場合は、別途EC2インスタンスを用意(このEC2インスタンスのスナップショットを取得、スナップショットから別のEC2インスタンスとして起動する、など)して対応してください。

現状のphp56インストール状況を確認する

$ rpm -qa | grep php | sort
php56-5.6.40-1.142.amzn1.x86_64
php56-cli-5.6.40-1.142.amzn1.x86_64
php56-common-5.6.40-1.142.amzn1.x86_64
php56-fpm-5.6.40-1.142.amzn1.x86_64
php56-imap-5.6.40-1.142.amzn1.x86_64
php56-jsonc-1.3.10-1.20.amzn1.x86_64
php56-mbstring-5.6.40-1.142.amzn1.x86_64
php56-mcrypt-5.6.40-1.142.amzn1.x86_64
php56-mysqlnd-5.6.40-1.142.amzn1.x86_64
php56-opcache-5.6.40-1.142.amzn1.x86_64
php56-pdo-5.6.40-1.142.amzn1.x86_64
php56-process-5.6.40-1.142.amzn1.x86_64
php56-xml-5.6.40-1.142.amzn1.x86_64

インストール可能なphp73系パッケージを確認する

$ yum list | grep php73
php73.x86_64                         7.3.6-1.17.amzn1              amzn-updates 
php73-bcmath.x86_64                  7.3.6-1.17.amzn1              amzn-updates 
php73-cli.x86_64                     7.3.6-1.17.amzn1              amzn-updates 
php73-common.x86_64                  7.3.6-1.17.amzn1              amzn-updates 
php73-dba.x86_64                     7.3.6-1.17.amzn1              amzn-updates 
php73-dbg.x86_64                     7.3.6-1.17.amzn1              amzn-updates 
php73-devel.x86_64                   7.3.6-1.17.amzn1              amzn-updates 
php73-embedded.x86_64                7.3.6-1.17.amzn1              amzn-updates 
php73-enchant.x86_64                 7.3.6-1.17.amzn1              amzn-updates 
php73-fpm.x86_64                     7.3.6-1.17.amzn1              amzn-updates 
php73-gd.x86_64                      7.3.6-1.17.amzn1              amzn-updates 
php73-gmp.x86_64                     7.3.6-1.17.amzn1              amzn-updates 
php73-imap.x86_64                    7.3.6-1.17.amzn1              amzn-updates 
php73-intl.x86_64                    7.3.6-1.17.amzn1              amzn-updates 
php73-json.x86_64                    7.3.6-1.17.amzn1              amzn-updates 
php73-ldap.x86_64                    7.3.6-1.17.amzn1              amzn-updates 
php73-mbstring.x86_64                7.3.6-1.17.amzn1              amzn-updates 
php73-mysqlnd.x86_64                 7.3.6-1.17.amzn1              amzn-updates 
php73-odbc.x86_64                    7.3.6-1.17.amzn1              amzn-updates 
php73-opcache.x86_64                 7.3.6-1.17.amzn1              amzn-updates 
php73-pdo.x86_64                     7.3.6-1.17.amzn1              amzn-updates 
php73-pdo-dblib.x86_64               7.3.6-1.17.amzn1              amzn-updates 
php73-pgsql.x86_64                   7.3.6-1.17.amzn1              amzn-updates 
php73-process.x86_64                 7.3.6-1.17.amzn1              amzn-updates 
php73-pspell.x86_64                  7.3.6-1.17.amzn1              amzn-updates 
php73-recode.x86_64                  7.3.6-1.17.amzn1              amzn-updates 
php73-snmp.x86_64                    7.3.6-1.17.amzn1              amzn-updates 
php73-soap.x86_64                    7.3.6-1.17.amzn1              amzn-updates 
php73-tidy.x86_64                    7.3.6-1.17.amzn1              amzn-updates 
php73-xml.x86_64                     7.3.6-1.17.amzn1              amzn-updates 
php73-xmlrpc.x86_64                  7.3.6-1.17.amzn1              amzn-updates

既存のphp56系パッケージの設定を退避する

(php56 settings)
$ sudo cp /etc/php.ini /etc/php.ini.before-update-php56
(php-fpm56 settings)
$ sudo cp /etc/php-fpm-5.6.d/www.conf /etc/php-fpm-5.6.d__www.conf.before-update-php56

稼働中のPHP-FPMを停止する

$ sudo service php-fpm stop

既存のphp56系パッケージをアンインストールする

$ sudo yum remove php56*

php73系パッケージをインストールする

$ sudo yum install \
  php73 php73-cli php73-common php73-fpm php73-imap php73-json \
  php73-mbstring php73-mysqlnd php73-opcache php73-pdo \
  php73-process php73-xml

php56の設定変更箇所をphp73に適用する

$ sudo cp /etc/php.ini /etc/php.ini.after-update-php56
(Apply settings from php56 (/etc/php.ini.before-update-php56))
$ sudo vi /etc/php.ini
$ sudo cp /etc/php-fpm-7.3.d/www.conf /etc/php-fpm-7.3.d/www.conf.org
(Apply settings from php56-fpm (/etc/php-fpm-5.6.d__www.conf.before-update-php56))
$ sudo vi /etc/php-fpm-7.3.d/www.conf

(reference)
$ diff /etc/php-fpm-7.3.d/www.conf.org /etc/php-fpm-7.3.d/www.conf
24c24
< user = apache
---
> user = nginx
26c26
< group = apache
---
> group = nginx
38c38
< listen = /var/run/php-fpm/www.sock
---
> listen = 127.0.0.1:9000

PHP-FPMを起動する

$ sudo service php-fpm start

おわりに

PHPのバージョンアップは比較的簡単です。新しいバージョンにすればセキュリティリスクを低減させ、処理速度の向上が望めます。特別な事情がなければ、積極的にアップグレードしましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください