【お知らせ】サイトをリニューアルしました!
スポンサーリンク
WordPressブログ運営

【解決】WordPressで「サイトが安全ではないバージョンの PHP を実行していることを検出しました。」と通知されたときの対処方法

WordPress

WordPressのダッシュボードから「サイトが安全ではないバージョンの PHP を実行していることを検出しました。」、「PHPの更新が必要です」と通知があったので、PHPのバージョンを7.0から7.3に更新しました。今回はその問題の内容と対処方法について説明します。

スポンサーリンク

WordPress(ダッシュボード)からの通知内容

「サイトが安全ではないバージョンの PHP を実行していることを検出しました。」とのこと。スマブロ@KENの使用しているPHPのバージョンは7.0ですが、PHP7.0は2018年でサポートが終了していました。WordPressの推奨バージョンはPHP7.4(2020年6月時点)です。

(参考:https://www.php.net/supported-versions.php)
スポンサーリンク

原因とその対処方法について

PHP7.4は2020年にリリースされていますが、リリースされて日がまだ浅いため、使用しているテーマやプラグインがPHP7.4に対応しているか確認しておく必要があります。今回はPHPのバージョン互換性をチェックするプラグイン「PHP Compatibility Checker」を使用して確認しました。

「PHP Compatibility Checker」ではPHP7.3までしかチェックできませんでした。有効化中のプラグインはテーマはPHP7.3に対応しているため、様子を見て2019年にリリースされたPHP7.3にアップデートしたいと思います。

それでは以下にてPHP7.0を7.3にアップデートする手順を説明します。

スポンサーリンク

PHP7.3のインストール方法

スマブロ@KENは仮想サーバにWordPressをインストールしてブログを運営しています。仮想サーバのソフトウェアは全て自前でメンテナンスしているので、PHPのアップデートは自身で行います。

前提の環境

アップデートにおける前提の環境は以下のとおりです。

  • OS Ubuntu 16.04 LTS
  • PHP7.0がインストール済み

リポジトリを追加するツールをインストールする

仮想サーバにログインしてリポジトリを追加するコマンドを実行します。

$ sudo apt-get install software-properties-common 

リポジトリを追加する

PHPをインストールするための外部リポジトリをシステムに追加します。

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

リポジトリを最新にする

外部リポジトリを追加したので、最新に更新します。

$ sudo apt update

PHP7.3のパッケージ情報を確認する

追加したリポジトリにPHP7.3パッケージが追加されているか確認します。

$ sudo apt show php7.3
Package: php7.3
Version: 7.3.19-1+ubuntu16.04.1+deb.sury.org+1
Priority: optional
Section: php
Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
Installed-Size: 79.9 kB
Provides: php
Depends: libapache2-mod-php7.3 | php7.3-fpm | php7.3-cgi, php7.3-common

PHP7.3の関連モジュールを確認する

PHP7.0の関連モジュールを確認して必要なPHP7.3モジュールを特定します。

$ sudo dpkg -l |grep php7.0

PHP7.3関連モジュールをインストールする

以下コマンドにて、PHP7.0を参考にPHP7.3および関連モジュールをインストールします。

$ sudo apt install php7.3 php7.3-fpm php7.3-mysql php7.3-mbstring php7.3-curl php7.3-gd php7.3-xml php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline php7.3-zip

www.confの変更を確認する

PHP7.3および関連モジュールをインストールすると、PHP7.0で使用していたコンフィグファイル(www.conf)の変更を行うか、対話形式で問われるので、「N」(=変更しない)を選択します。

Configuration file '/etc/php/7.0/fpm/pool.d/www.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** www.conf (Y/I/N/O/D/Z) [default=N] ?

PHPのバージョンを確認する

以下コメンドでインストールされたPHPのバージョンを確認します。

$ php -v

PHP7.3と表示されればOKです。

PHP 7.3.19-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jun 12 2020 07:48:10) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.19-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

PHPの切り替え

PHP7.3をインストールした時点で自動でPHP7.0から7.3に切り替わります。もし7.0に戻す必要がある場合は以下コマンドを実行します。

・PHPのリストを確認する

$ update-alternatives --list php
/usr/bin/php7.0
/usr/bin/php7.3
$ update-alternatives --display php
php - auto mode
  link best version is /usr/bin/php7.3
  link currently points to /usr/bin/php7.3
  link php is /usr/bin/php

・PHPの切り替え

$ update-alternatives --set php /usr/bin/php7.0

PHPコマンドの実体は、/usr/bin/phpです。さらにこの実体は/etc/alternatives/php へのシンボリックリンクとなっており、さらに/etc/alternatives/phpがPHP7.0または7.3のへのシンボリックリンクとなっています。/etc/alternatives/php へのシンボリックリンクを切り替えることでPHPのバージョンを切り替える仕組みとなっています。

スポンサーリンク

PHPのコンフィグ設定

実行ユーザの設定

デフォルトではWebサーバの実行ユーザ/グループはApache仕様となっています。スマブロ@KENはWebサーバにnginxを使用しているため、実行ユーザを変更します。

$ sudo vi /etc/php/7.3/fpm/pool.d/www.conf
;user = www-data
;group = www-data
user = nginx      ←実行ユーザを/etc/nginx/nginx.confのuserに合わせる
group = nginx     ←実行ユーザを/etc/nginx/nginx.confのuserに合わせる

・ソケットowner/grpupをnginxにする

;listen.owner = www-data
;listen.group = www-data
listen.owner = nginx ←ソケットユーザを/etc/nginx/nginx.confのuserに合わせる
listen.group = nginx ←ソケットユーザを/etc/nginx/nginx.confのuserに合わせる

・FPMが実行するPHP拡張子の制限する

security.limit_extensions = .php .php3 .php4 .php5 .php7

PHP7.0を停止させて、PHP7.3を再起動する

$ sudo service php7.0-fpm stop
$ sudo service php7.3-fpm stop
$ sudo service php7.3-fpm start

これで準備完了です。今まで通り動作しているか、サイトやWordPressをテストします。

スポンサーリンク

まとめ

2020年6月時点ではWordPressの推奨PHPバージョンは7.4
Ubuntu 16.04 LTSのデフォルトPHP7.0バージョンは2018年にサポート終了している
今回の対処はリリース後に1年経過しているPHP7.3をインストールした
PHP7.3にアップデートすることで「PHPの更新が必要です」は解消した
スポンサーリンク
スポンサーリンク
タイトルとURLをコピーしました