Nginx+WordPress PHP5からPHP7へ上げる方法

WordPressをバージョン5.1に上げたら、PHPの更新が必要です。新しいバージョンのPHPはより高速かつ安全です。のようなメッセージが出たので、PHPのバージョンを5から7へ上げてみました。その方法です。

なんでもWordPressをPHP7で動作させると、PHP5のときに比べて2倍近くも高速に動作するようです。参考サイト

まず結論

手順は2ステップです。まずPHP7をインストールして、次にNginxが使用するPHPをPHP5からPHP7へ変更します。

環境

Ubuntu 14.04 LTS
Nginx 1.14.2
WordPress 5.1.1
PHP5-FPM
PHP7.3-FPM

PHP7-FPMのインストール

PHP7-FPMをインストールします。なお、PHP5-FPMとはインストールフォルダが異なるので、PHP5-FPMは上書きされません。

PPAリポジトリを追加します。

$ sudo add-apt-repository ppa:ondrej/php

もしadd-apt-repositoryコマンドがなかったら、インストールします。

$ sudo apt-get install software-properties-common

パッケージを更新して、インストール可能なPHP7-FPMバージョンを確認します。

$ sudo apt-get update
$ apt-cache search php7
php7.3-fpm - server-side, ...

php7.3-fpm が見つかりましたので、これをインストールします。ついでにcURL用のphp7.3-curlとMySQL用のphp7.3-mysqlをインストールします。

sudo apt-get install php7.3-fpm php7.3-curl php7.3-mysql

PHP7-FPMの設定

PHP7の設定ファイルの一部を次のように変更します。www-dataについては元々PHP5-FPMで使用していた名称にするのがよいかと思います。/etc/php5/fpm/pool.d/www.conf を確認してください。

$ sudo vi /etc/php/7.3/fpm/pool.d/www.conf
user = www-data
group = www-data
listen = /run/php/php7.3-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

上のlistenの値をNginxに設定するのでメモっておきます。

Nginxの設定

NginxがPHP7-FPMを使うように設定変更します。default.confは実際に使っているものに読み変えてください。

$ sudo vi /etc/nginx/conf.d/default.conf

# php5-fpm
# fastcgi_pass unix:/var/run/php5-fpm.sock;

# php7-fpm
fastcgi_pass unix:/run/php/php7.3-fpm.sock;

PHP5-FPMのソケットを使用してる箇所をコメントアウトして、PHP7-FPMのソケットのパスに置き換えます。パスは、PHP7-FPMの設定でメモしたlistenの値です。

動作確認

NginxとPHP7-FPMをリスタートして、WordPressサイトが正常に動作しているか確認します。

$ sudo service php7.3-fpm restart
$ sudo service nginx restart

何か異常があれば

まだPHP5-FPMは残っているので、万が一、何か異常があれば、Nginxの設定を戻せば大丈夫です。

以上です。