別案件でWordPress入れた際にPHPのバージョン7.3に上げたら爆速になったので、自分のサイトでもやりたくなりました。
というか、
また、PHP5系は2018年末にサポートが終了して「セキュリティアップデート」すらなくなっています。
2019年4月からWordPressのphpバージョンは5.6以上が必要になるよ! | WEBマスターの手帳
そもそもサポート切れてるとは知りませんでした。
紆余曲折あり(後述)、PHPのバージョンを上げる事ができました。
気になる表示スピードへの影響
体感で分かるくらい速くなりました。
5年くらい前、会社の後輩から「いまさしさんのサイトって重いんですよね」とド直球で言われて落ち込んだ事がありますが、もう重いとは言わせないぞ、という印象を持ちます。
Google PageSpeed Insightでも調べてみました。
総合スコアが上昇。
特に、サーバー応答速度に関しては如実な変化が現れています。
本当はちゃんと DOMContentLoaded や Load の時間を測っておくべきだと思うんですが、その方法を知ったのがバージョンアップ後だったので比較できませんでした。無念。
あと、今回のPHPアップデートとは別に、ちょっと前にSSL対応した後もスピードアップしましたし、ロリポップも速度改善しているのかもしれません(詳しくは分かりません)。
激重と言われたロリポップ+WordPress運用も、近年は汚名返上の感があります。
けっこう満足です。
PHPをバージョンアップした手順を紹介します
という事でメリットが有る!と言えるPHPのバージョンアップですが、やる前は正直怖いです。「本当にやっていいのかしら」「画面が真っ白になったらどうしよう」と恐れる1日前の私のような人もいらっしゃるかと思いますので、今回人柱になった私が、自分の場合のプロセスを紹介します。
気をつけないといけない事は以下の2点です。
- テーマやプラグインで記述されているPHP文が、PHP7.Xに準拠しているか(WordPress側の問題) と、
- データベースがPHP7.Xで参照できるか (データベース側の問題)
自分の場合、WordPressは簡単に終わり、データベースでは死ぬ思いをしました。
PHP文をチェックする
まず、ロリポップから「PHP5.2や5.3からアップデートしたら二度と戻せないよ」と脅されて慎重になるところから始めます。
テーマとプラグインがPHP7.Xに対応している記述かをチェックする
テーマ内やプラグインで利用されているPHP文の中に、バージョンアップにより廃止されたものが無いかとチェックします。
PHP Compatibilityというプラグインを使います。日本語対応しているので安心。
バッチリエラーが出ました。
エラーの出元は、「関連する記事」の出力で10年間疑いもせず利用してきたプラグイン”Similar Posts”。よりによってそこかぁ。
どうにかこれがPHP7.Xで動くかどうかの確証が欲しかったのですが、英語版のフォーラムを覗いても作者が返事をしていない。もう興味を無くしたようです。
さすがにエラーが出ると知っておきながら無理やりPHPのバージョンアップに踏み切る勇気はありません。かと言って関連記事を消す事はできない。という事でひとまず別の関連記事プラグインに載せ替える事にしました。思ったよりタスクが増える…。
なおここでオールグリーンだった方は、もうWordPress側の対応は大丈夫だと思われます。何が起こるか分からないので、断言はできませんが…。
関連記事プラグインの載せ替えをする
とはいえこの手のプラグインはたくさんあり、何にしようか迷います。
Best Related Posts Plugins for WordPress – WPExplorer
とりあえずヒットした記事で、1番最初に紹介されていた “Related Posts for WordPress by Bibblio Free Plugin” というのを試してみます。「軽さに自信あり」との事なので、そもそもPHPのバージョンを上げる目的にも沿っています。
が、そもそもエラーでインストールできませんでした。なんだよそれ。
悩むのが面倒くさいので、上記記事の2番目に紹介されていた “Yet Another Related Posts Plugin (YARPP)” にトライ。日本でも利用者が多いらしく、解説記事が多くて安心です。
アイコンが可愛い。自分好みのイラストなのですが、この場合に限っては「ちゃんと作ってるのかな」という気もしてしまいますね。
新しいプラグイン YARPP を運用してみる
関連記事の精度がやはり気になるので、Similar Posts と YARPP をダブルで表示して、出力される関連記事を比較しました。30記事分くらいは見たと思います。
Similar Postsに比べてちょっと精度が乱暴というか、極端な気がします。
例えば記事タイトルに「ツアーFINAL」という文字が入ってると、問答無用で「Final Fantasy」関連の記事が推薦されます。ちょっと笑いました。
それ以外にも設計として不親切かなぁと思う箇所も散見されたこのプラグインですが、このままだと関連記事プラグインの検証だけで1週間とかかかりかねないので、それなりの精度では動いている事を及第点として、ひとまず採用としました。
改めて、PHP互換性をチェックする
Similar Posts (と、それを動かすのに必要な Post-Plugin Library)を無効化して、改めて PHP Compatibility でチェックします。
オールグリーンになりました。いやイエローもありますが。結論を言うと「警告」はほっといても一応PHP7.Xで動いています。
WordPress側のチェックと対応はこれでOKでした。
私の場合、PHPバージョンアップの本番はむしろこれからでした…。
データベースは死ぬ思いをした
顛末はこちらに詳しく書きました。
特に(PHP5.3ではなく)5.2からバージョンアップする場合はちょっと大変なのでご注意ください。