WordPressのPHPをバージョンアップしようとして失敗した件 | そう備忘録

WordPressのPHPをバージョンアップしようとして失敗した件

PHPのバージョンアップ

先日の記事でWordPressの管理画面で「PHPの更新が必要です」との警告メッセージが表示されたのでOSをUbuntu 16.04から18.04にアップグレードした記事を書いた。

OSのアップグレードに伴いPHPが7.0から7.2にバージョンアップされたので致命的な問題としてのメッセージは一旦は表示されなくなったのだが、7.2でも最新バージョンではないのでサイトヘルスで「更新をおすすめする」とのメッセージが表示されている。

最新のPHPでは無いとの警告メッセージ

PHP 7.2も今年(2020年)の11月にはセキュリティサポートが切れてしまうので、現時点の安定している最新版のPHP 7.4へのバージョンアップを試みた。

失敗した

しかし結論から先に言うと現時点でPHPのバージョンアップはうまく行っていない。

正確にはPHPは7.4にバージョンアップできたのだがWordPressがうまく動かなかったので一旦7.2に戻している。

管理画面では問題なく各ページが表示されるのだが本番のフロントページで、記事が正しく表示されない。

うまくいかなかった事を記事にするのもどうかとは思ったが11月までには何とかしたいと思っているのと同じ様な現象が起きている人も居るかとは思うので備忘録の意味で残しておくことにした。

事前準備

万が一に備えて事前にUpdraftPlusでデータベースとファイル類をGoogle Driveにバックアップした。

UpdraftPlusの詳細についてはこちらの記事を参照

またVM環境に同一環境のサーバーを準備して予行演習をおこなった(こちらではうまく行っている)

VM環境の構築についてはこちらの記事を参照

コマンド

php7.4のインストール

以下のコマンドを実行した。

sudo apt-get update
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt -y install php7.4

特にエラーもなく終了したのでPHP7.4はインストールされたのだがapacheで有効にはなっていない状態。

試しに以下のコマンド実行してみる。

cd /etc/apache2/mods-enabled/
ls -l php*

PHP7.2が有効になっている。

php7.2が有効になっている

7.4を有効にする

以下のコマンドで7.4を有効、7.2を無効にした。

sudo a2enmod php7.4
sudo a2dismod php7.2
ls -l php*

切り替わった。

php7.4が有効になった

ここでsudo rebootでOSの再起動(apacheの再起動だけでも良いはず)

真っ白ページ

しかしWordPressの管理画面を見ると”お使いのサーバーのPHPではWordPressに必要なMySQL拡張を利用できないようです。”の真っ白画面のエラーメッセージが表示されてしまう。

MySQL拡張を利用できない

php-mysqlをインストール

実はこの現象は事前のVM環境のテストサーバーでも経験していた。

php-mysqlがインストールされていない事で発生していたので以下のコマンドでphp-mysqlをインストールした。

sudo apt-get install php-mysql

念の為、確認する。

php -m | grep mysql

php-mysqlがインストールされた。

php-mysqlがインストールされた

sudo systemctl restart apache2

上記のコマンドでapacheを再起動。

フロントページが正しく表示されない

事前のVM環境ではこれで問題無くWordPress管理画面およびフロントページも表示されたのだが、なぜか本番機(AWS上のUbuntu18.04)ではうまく動作しない。

フロントページには本来、直近のブログ記事のサムネイルが表示されるはずなのだが真っ白になっている。

フロントページが表示されない

尚、各記事のURLを直接入力する分には問題なく表示される。

続いてWordPressの管理画面から”ツール”ー>”ヘルスチェック”を選択すると、

  1. 必須モジュールのgdがインストールされていないか無効化されている
  2. 使用できるPHP向けXML処理ライブラリがありません

のクリティカルエラーが表示されていたので以下のコマンドでモジュールを追加。

sudo apt-get install php7.4-gd php7.4-xml

インストールが正常終了してヘルスチェックでのクリティカルなエラーはゼロになったのだがフロントページは相変わらず真っ白なままである。

元に戻す

いずれにしてもすぐに解決できそうに無いので上記と逆の手順を行い一旦有効なphpを7.2に戻した。

sudo a2enmod php7.2
sudo a2dismod php7.4
sudo apt-get install php-mysql

もう少し時間をかけて調査する必要がある模様。

何か分かったら記事にしたいと思う。

最後に

この記事が何処かで誰かの役に立つことを願っている。

尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。