ブログサーバー(Ubuntu)のPHPを7.2から7.4にバージョンアップした時の対応
Contents
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のバージョンアップを考えると違うプラグインに乗り換えた方が良いと思う。
まぁプラグインの乗り換えはこの後で検討するとしてとりあえずの対処方法。
結局、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”を探す。
wの後ろにバックスラッシュを追加する。
修正前:/[^\w-+#]/msi
修正後:/[^\w\-+#]/msi
以上でプラグインの修正は終了。
PHPのバージョンアップ
現在のサーバーはPHP7.4のインストールは既に済んでいて、7.4を無効化して7.2を有効にしている状態。
詳しくは以前の記事を参照して欲しい。
念の為、現在の有効なPHPのバージョンを確認する。
cd /etc/apache2/mods-enabled/
ls -l php*
下記のコマンドで7.4を再び有効にした後、apacheを再起動する。
sudo a2enmod php7.4
sudo a2dismod php7.2
sudo systemctl restart apache2
この後、トップページなど一通り巡回して問題なく表示されている事を確認した。
サイトヘルスで確認する
念の為、サイトヘルスでもチェックする。
WordPressのメニューからツール、サイトヘルス、情報タブを開く。
サーバーをクリックしてサーバー情報を確認してPHPのバージョンが7.4.7である事を確認した。
サポート期限
ちなみにPHP7.4のアクティブサポート期限は2021年11月28日、セキュリティサポート期限は2022年11月28日。
後、2年ほど期限が延びたことになる。
以上で今回の記事は終了とする。
この記事が何処かで誰かの役に立つことを願っている。
尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。
最近のコメント