WordPress管理画面で「PHPの更新が必要です」への対応でOSも18.04にバージョンアップした
Contents
PHPの更新が必要です
このブログはWordPressで書いているのだが管理画面に「PHPの更新が必要です」のメッセージが表示されたので対応した時の備忘録。
WordPressでは5.2からサイトヘルスというツールが追加されていて、サイトの”健康状態”をモニターして教えてくれる機能がついたのだが、その健康チェックの一貫でPHPのバージョンが古いことを警告表示してくれたわけである。
このブログの環境
2020年6月19日の朝の段階での環境は以下の通り。
Server | AWS(Amazon Web Services) EC2(Elastic Compute Cloud) |
OS | Ubuntu Server 16.04 LTS(HVM)64 bit |
CMS | WordPress 5.4.2 |
PHP | 7.0.33 |
レンタルサーバーを使っているとPHPは自動的にバージョンアップをしてくれる所もあるようだがAWSで自前でサーバーを立てているので、この辺のメンテナンスは自分で行う必要がある。
バージョンの確認方法
AWSのサーバーにターミナルソフト(PuTTY)でログインをして以下のコマンドでPHPのバージョンを確認した。
php -v
PHPのバージョンは7.0.33になっていた。
7.0のセキュリティサポートは調べてみると2018/12/03で終了していた。
バージョンアップ方針
早速PHPのバージョンアップを実施しようと思ったのだがOSのバージョンもUbuntu 16.04と古いのが気になった。
Ubuntu 16.04上でPHPのバージョンアップだけを実施するよりも、いっその事Ubuntuを18.04にバージョンアップすれば18.04のデフォルトのPHPは7.2(セキュリティサポート期限 2020.11/30)なので警告表示も消えるはずと思い、OSのバージョンアップを実施することにした。
そういえばAWSにログインをすると最初の画面で、”New Release 18.04.4 LTS available”と随分前から表示されていたのを今更ながら思い出した。
OSをバージョンアップしてWordPressが動かなくなるのが嫌でメッセージは放置していたのだが、このまま放置だとセキュリティリスクもあるのでこの際対応することにした。
バージョンアップ手順
Ubuntu OSのバージョンアップ手順は以下の通り。
- VM環境で事前チェック
- データベース、ファイルのバックアップ
- バージョンの事前確認
- updateとupgrade
- OSアップグレード(16.04→18.04)
- その他対応
VM環境で事前チェック
いきなり本番環境で実施するのも勇気がいるので、この後の「バージョンの事前確認」以降の手順をVM環境のUbuntuで事前に試してみている。
尚、VM環境の構築については過去のこちらの記事を参照。
その際の画面ショット等は省略するがこの後の本番環境でのアップデートとほぼほぼ同じ手順でアップデートは終了している。
”ほぼほぼ”と言ったのは最後の所で若干、本番と動きが違ったから。
それについてはその他で後述する。
データベース、ファイルのバックアップ
VM環境で事前に試したのだが、更に念の為にデータベースと画像等のファイル類をバックアップする事にした。
バックアップはUpdraftPlusというプラグイン(詳しくはこちらの記事を参照)で毎週日曜日にWordPressのデータベースとファイル類をGoogle Driveにバックアップしているのだが直近のバックアップは2020年6月13日になっていた。
それから3つほど記事を書いているので念の為、WordPressの管理画面から設定ー>UpdraftPlus Backupsでプラグインの画面を表示して「今すぐバックアップ」をクリックする。
- バックアップにデータベースを含める
- バックアップ内のすべてのファイルを含める
- このバックアップをリモートストレージに送信
にチェックが入っていることを確認して「今すぐバックアップ」をクリックする。
バックアップは30分程で終了、Google Driveにバックアップされた。
このファイルが必要になる事が無いように祈る。
バージョンの事前確認
AWS EC2上のサーバーにターミナル(PuTTY)でログインをしてOSのバージョンを念の為、確認をする。
cat /etc/lsb-release
16.04.3であることが確認できた。
updateとupgrade
update
下記のコマンドでパッケージ類のアップデートを行う。
sudo apt-get update
ここでちょっと問題が発生。phpmyamin用のパッケージ、
http://ppa.launchpad.net/nijel/phpmyadmin/ubun/dists/xenial/main/binary-amd64/Packages
が見つからないとのエラー。
そういえばphpmyaminをインストールした時にリポジトリ登録をnijelからやった気がする。
今は使っていないので削除する事にする。
cd /etc/apt/sources.list.d
sudo rm nijel*
再度updateを行い、今度は正常終了する事を確認した。
upgrade
続いてupgrade
sudo apt-get dist-upgrade
upgradeでは無くdist-upgradeを実行する事により、
- 追加パッケージインストールや不要パッケージ削除
- カーネル更新
を行ってくれるとのこと。
実はVM環境ではupgrade後にdo-release-upgradeを実行した所、アップグレード出来ない(画面ショット撮り忘れ)とのエラーが発生したのでdist-upgradeを実行した経緯がある。
dist-upgradeが無事に終了したので一度、OSを再起動している。
OSアップグレード
updateマネージャーのインストール
下記のコマンドで念の為、updateマネージャーをインストールする。
sudo apt-get install update-manager-core
しかし既にインストールされているとのメッセージだった。
OSアップグレード
いよいよ下記のコマンドでOSをUbuntu16.04から18.04にアップグレードした。
sudo do-release-upgrade
この際に-dオプションをつけると開発バージョンであっても強制的にアップグレードしてしまう事があるので付けない方が良い模様。
途中で、grubの新しいメニューリストに置き換えるか?の確認メッセージが表示されたので「今のローカルのバージョンを使用する」を選択した。
十数分でアップグレードは終了して、OSが18.04、それに伴いPHPのバージョンは7.2.24になった。
その他対応
PHPも7.2にバージョンアップされたのでWordPressの管理画面で確認をしたのだが最初の警告メッセージが相変わらず表示されていた。
VM環境ではこの様な事は無かったのだがどうやらWordPressからは相変わらずPHP7.0が見えている模様。
以下のコマンドでapacheから有効になっているPHPを確認した所、理由は不明だがphp7.0と7.2の両方が有効になっていた。
cd /etc/apache2/mods-enabled/
ls -l php*
以下のコマンドでphp7.0を無効化してapacheを再起動する。
sudo a2dismod php7.0
sudo service apache2 restart
今度は警告メッセージが表示されなくなった。
最後に
phpのバージョンを7.2にした事によりWordPressの管理画面での警告メッセージは表示されなくなった。
しかしPHPの最新バージョンは7.4が出ている。
7.2のままだと今年の11月にはセキュリティサポートが切れてしまうのと7.3以降は早くなっているとの話もあるので別途バージョンアップを行おうと思っている。
最近のコメント