ブログサーバー(Ubuntu)のPHPを7.2から7.4にバージョンアップした時の対応 | そう備忘録

ブログサーバー(Ubuntu)のPHPを7.2から7.4にバージョンアップした時の対応

PHPのバージョン

このブログのPHPのバージョンを7.2から7.4にバージョンアップした時の備忘録。

このブログはAWS(Amazon Web Services)のEC2(Elastic Compute Cloud)にWordPressをインストールして書いている。

環境

2020年8月現在のブログの環境は以下の通り。

Server

AWS(Amazon Web Services) EC2(Elastic Compute Cloud)

インスタンスタイプ

t2.small

OS

Ubuntu Server 18.04LTS

CMS

WordPress Ver5.5

PHP

PHP 7.2

サポート期限

PHP7.2の初回リリースが2017年11月30日、アクティブサポートの期限が2019年11月30日でもう既に切れてから9ヶ月経過している。

そしてセキュリティサポートの期限が2020年の11月30日で3ヶ月後に迫っていた。

バージョンアップ出来なかった理由

さっさとバージョンアップをしたかったのだが実はバージョンアップが出来ない理由があった。

以前の「WordPressのPHPをバージョンアップしようとして失敗した件」の記事でも書いたのだがPHPを7.4にバージョンアップをするとフロントページや各記事が正しく表示されない不具合が発生していた。

その為、一旦は7.4にバージョンアップをしたのだが7.2に戻して使っていた。

理由

色々と調査した結果、ページが正しく表示されない理由が判明した。

テスト用のVM環境を用意して本番と同じ環境にした後にプラグインを片っ端から無効化した所、Crayon Syntax Highlighterを無効化をした時に現象が解消した。

その後、Crayon Syntax HighlighterとPHPでネットを検索した所、Unofficial Web Site Tokyoさんのサイトに対処法が載っていたので参考にさせて頂いた。

ありがとうございます。

対処方法

原因はPHPがバージョンアップされた事で正規表現の解釈方法が変わったこと。

とりあえずの対処方法としてプラグインの修正方法が載っていたので今回は実施したのだがCrayon Syntax Highlighterのプラグインは4年間更新をされていないので今後のPHPやWordPressのバージョンアップを考えると違うプラグインに乗り換えた方が良いと思う。

まぁプラグインの乗り換えはこの後で検討するとしてとりあえずの対処方法。

2020年12月14日 追記

結局、Crayon Syntax Highlighterのプラグインは使用するのを止めてPrismに乗り換えた。

詳細については「Crayon Syntax Highlighterからprismへの切り替え」の記事を参照してほしい。

phpファイルの修正

該当ディレクトリに移動してcrayon_langs.class.phpのファイルを開く。

/var/www/wordpress/の所はWordPressをインストールした環境によって異なる。

cd /var/www/wordpress/wp-content/plugins/crayon-syntax-highlighter
sudo vi crayon_langs.class.php

文字列”preg_replace”を探す。

修正前crayon_langs.class.php

wの後ろにバックスラッシュを追加する。

修正前:/[^\w-+#]/msi
修正後:/[^\w\-+#]/msi
修正後画像

以上でプラグインの修正は終了。

PHPのバージョンアップ

現在のサーバーはPHP7.4のインストールは既に済んでいて、7.4を無効化して7.2を有効にしている状態。

詳しくは以前の記事を参照して欲しい。

念の為、現在の有効なPHPのバージョンを確認する。

cd /etc/apache2/mods-enabled/
ls -l php*
有効なPHPの確認

下記のコマンドで7.4を再び有効にした後、apacheを再起動する。

sudo a2enmod php7.4
sudo a2dismod php7.2
sudo systemctl restart apache2
7.4を有効化する

この後、トップページなど一通り巡回して問題なく表示されている事を確認した。

サイトヘルスで確認する

念の為、サイトヘルスでもチェックする。

WordPressのメニューからツール、サイトヘルス、情報タブを開く。

サーバーをクリックしてサーバー情報を確認してPHPのバージョンが7.4.7である事を確認した。

PHPバージョンの確認

サポート期限

ちなみにPHP7.4のアクティブサポート期限は2021年11月28日、セキュリティサポート期限は2022年11月28日。

後、2年ほど期限が延びたことになる。

以上で今回の記事は終了とする。

最後に

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

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

souichirou

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

おすすめ

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

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