WordPressのPHPをバージョンアップしようとして失敗した件
Contents
PHPのバージョンアップ
先日の記事でWordPressの管理画面で「PHPの更新が必要です」との警告メッセージが表示されたのでOSをUbuntu 16.04から18.04にアップグレードした記事を書いた。
OSのアップグレードに伴いPHPが7.0から7.2にバージョンアップされたので致命的な問題としてのメッセージは一旦は表示されなくなったのだが、7.2でも最新バージョンではないのでサイトヘルスで「更新をおすすめする」とのメッセージが表示されている。
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が有効になっている。
7.4を有効にする
以下のコマンドで7.4を有効、7.2を無効にした。
sudo a2enmod php7.4
sudo a2dismod php7.2
ls -l php*
切り替わった。
ここでsudo rebootでOSの再起動(apacheの再起動だけでも良いはず)
真っ白ページ
しかしWordPressの管理画面を見ると”お使いのサーバーのPHPではWordPressに必要なMySQL拡張を利用できないようです。”の真っ白画面のエラーメッセージが表示されてしまう。
php-mysqlをインストール
実はこの現象は事前のVM環境のテストサーバーでも経験していた。
php-mysqlがインストールされていない事で発生していたので以下のコマンドでphp-mysqlをインストールした。
sudo apt-get install php-mysql
念の為、確認する。
php -m | grep mysql
php-mysqlがインストールされた。
sudo systemctl restart apache2
上記のコマンドでapacheを再起動。
フロントページが正しく表示されない
事前のVM環境ではこれで問題無くWordPress管理画面およびフロントページも表示されたのだが、なぜか本番機(AWS上のUbuntu18.04)ではうまく動作しない。
フロントページには本来、直近のブログ記事のサムネイルが表示されるはずなのだが真っ白になっている。
尚、各記事のURLを直接入力する分には問題なく表示される。
続いてWordPressの管理画面から”ツール”ー>”ヘルスチェック”を選択すると、
- 必須モジュールのgdがインストールされていないか無効化されている
- 使用できる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のアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。
最近のコメント