ここのWordpressサイトのPHPバージョンを7.2にしました。Debian Stretchの安定(stable)バージョンはphp7.0ですが、現行WordPressの推奨バージョンはphp7.2以上です。この矛盾を解消するためにphp7.2にすることにしました。php7.3はまだ不安定だったので、php7.2にしました。何か不具合が出ても簡単に元のphp7.0に戻すことができます。
前提として、こちらの記事通りにインストールしたNginxのLAMP環境でのアップデート方法です。
このページの目次
インストール
Debian公式では、php7.2も7.3もまだtesting段階でBackports版にも上がっていません。
DebianのPHPパッケージ化開発者のdeb.sury.orgから自己責任でインストール可能なようです。
https://packages.sury.org/php/ のREADME.textの通りに、下記コマンドをrootで実行します。
# apt -y install apt-transport-https lsb-release ca-certificates # curl -ssL -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg # sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' # apt update
php7.0だけをインストールすると、うちの環境ではApacheが入っていないので勝手に一緒にインストールしようとするので、php7.2-fpmほか関連パッケージも一緒にインストールします。これでApacheがインストールされることはないです。
関連パッケージは、あくまでうちのWordPressのプラグインなどで必要なものとなっています。自動でいろいろ推奨パッケージも追加でインストールされるので、だいたいWordPressを使う分には困ることはないと思われます。
php7.2をインストール
apt install php7.2 php7.2-fpm php7.2-mysql php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl
php7.3をインストール
apt install php7.3 php7.3-fpm php7.3-mysql php7.3-mbstring php7.3-xml php7.3-gd php7.3-curl
www.confの設定
php7.x-fpmの設定ファイルを変更します。/etc/php/7.2/fpm/pool.d/www.conf と/etc/php/7.3/fpm/pool.d/www.confを編集します。apacheのユーザー名(www-data):グループ名(www-data)になっている箇所を、nginx:nginxに変更します。
23-24行目を変更します。
user = nginx group = nginx
47-48行目も変更します。
listen.owner = nginx listen.group = nginx
php7.x-fpmをリスタートします。
/etc/init.d/php7.2-fpm restart /etc/init.d/php7.3-fpm restart
Nginxが使うPHPバージョンの指定
ここまでで、php7.0、7.2、7.3のどれでも使えるようになっています。Nginxが使うPHPのバージョンを指定するのは、/etc/nginx/conf.d/*.conf ファイルのphp7.xの数字を書き換えることで設定できます。
現在のphp7.0の設定の32行目あたりのphp7.0-fpmの部分を書き換えます。
location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
php7.2を使う場合
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
php7.3を使う場合
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
Nginxリスタート
設定変更はnginxをリスタートして反映されます。
/etc/init.d/nginx restart
前のバージョンに戻す場合
以上で、このサイトのPHPバージョンをアップデートすることができました。しばらく様子をみて問題がある場合など、元の7.0に戻すのも簡単です。
/etc/nginx/conf.d/*.conf ファイルの数字を7.0に書き換えてnginxをリスタートするだけです。最初php7.3にしたら、うちのサイトでは表示がおかしくなったり不安定だったので、php7.2にして今のところ問題なく動いているようです。