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 と拡張モジュールをインストールします。必要な拡張モジュールは使用するプラグインなどの環境によって異なります。ここでは次の内容でインストールしました。

sudo apt-get install php7.3-fpm php7.3-mysql php7.3-curl php7.3-mbstring php7.3-xml php7.3-zip php7.3-cli

上記でインストールした拡張モジュールは次の通りです。

  • php7.3-mysql: MySQL用
  • php7.3-curl: cURL用
  • php7.3-mbstring: MBSTRING用
  • php7.3-xml: DOM操作用
  • php7.3-zip: Zip用
  • php7.3-cli: コマンドライン用

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の設定をPHP5-FPMに戻せます。

以上です。