WordPressサイトを最新版のPHPで運営する事には多くのメリットがあります。その中でも特筆すべきは、速度が非常に上がることです。PHP 7.3はPHP 5.6に比べて1秒間に処理できるリクエストの量が約3倍にもなりました。
性能はもちろんのこと、それ以外にも注目すべき点があります。PHP5.6もPHP 7.0も2018年にサービスを終了しました。つまりはどちらのバージョンもセキュリティ面の基本的なメンテナンスが行われなくなりました。このサポートが終了したバージョンを使っていると、サイトに危険な事態が起こる可能性も高くなります。
さらに知っておくべきなのは、WordPressがサーバーでPHP 7.3を使用することを推奨しており、PHP 5.6以前のサポートを終了する予定だということです。しかしこの場合、最小限の設備でサイトを運営することはあまりよくありません。
もし古いバージョンのPHPをお使いでしたら、時代のスピードに追い付くべきです。ですがアップデートする前に、サイトが新バージョンでもスムーズに動作するかテストすることが重要です。
ここではサイトをPHP 7.xに対応させるために考慮すべき点とテスト方法を見ていきましょう。
考慮すべき点と考えうる障壁
当然ですが、サイトが古いほど、最新版のPHPで動かすと問題が生じる可能性は高くなります。テーマやプラグインに使われるコードは時とともに進化しています。なので、何年か前には可能だった方法も今では廃止になったりなくなってしまったりしていることもあります。
なので、PHP関連のテストをする前に、インストールしたWordPressが最新のものになっているかを確認する必要があります。つまりはWordPressの基本機能、テーマ、プラグインが最新版である必要があるのです。
もしテーマやプラグインにここ数年最新版が出ていなかったらどうすればいいのでしょうか?こうした場合、PHPをアップグレードする際に問題が発生する可能性があります。もしテーマやプラグインにPHP最新版非対応のコードが含まれている場合、エラー表示になったりサイトの読み込みができなくなってしまう(かの悪名高い「死の白画面」になってしまう)こともあります。
これから紹介するテストでは、問題点を把握することができます。ただサイトの一部分を変更しなければならない可能性も心に留めておいてください。
ほかに考慮すべき重要ポイントは、webホストの設定です。ホストの提供するPHPはどのバージョンでしょう?問題が起こった時に簡単にバージョンを変更することができますか?バージョン5.6や7.0をホストが廃止する予定はありますか?こうした質問に答えることで、最適なテスト方法を見つけ出すことができます。
テスト方法
サイトの規模に関わらず、新しいバージョンのPHPを使う前にはテストが必要です。手間はかかりますが、ダウンタイムにイライラする心配はなくなります。
テスト方法はご自身の環境と、さらに一般的には、PHPに関する知識量で変わってきます。ここでは、2つの基本的なテスト方法に的を絞って説明します。
ステージングサーバーを使う
アップグレードしたいPHPを実行できるステージング環境へのアクセスが可能だと理想的です。ステージング環境でテストを行うことで実際の結果とどの部分が動作するか(しないか)を見定めることができます。
もしホストがステージング環境を提供していない場合は、ローカルサーバーをつなぎ合わせることで似た環境が作れます。Bitnami、WAMP、XAMPPといったソフトを使うと素早くテストができます。
どちらにせよ、サイトのコピー版でテストを行えばより簡単にテストができます。デバッグをオンにすれば、フロントエンドやバックエンドに目立った問題がないか全体的にチェックすることができます。
互換性チェックソフトを使う
100%の正確性はありませんが、互換性チェックツールを使ってインストールしたWordPressが特定のバージョンのPHPに対応しているかチェックすることもできます。
無料のPHP互換性チェッカープラグインを使えばテーマやプラグインのコード全体から共通の問題点を見つけ出すことができます。テストしたいメジャーなバージョンのPHP(7.1や7.2など)を選択するだけでプラグインが自動的にテストを行ってくれます。項目別のレポートを作成し、起こる可能性のある問題を教えてくれます。
エラーの発見と修復
サイトにエラーが表示される場合、その原因を見つけ出して修復するのに時間を費やす必要があります。時には、エラー自体が真犯人を導き出してくれる場合もあります。例えば、特定のプラグインへのパスが書かれていれば、問題解決の糸口になります。しかし事はそう簡単にいくとは限りません。
エラー内容がもっと漠然としている場合、探偵のように地道なトラブルシューティングを行う必要があります。WordPressでの通常の対応としては、プラグインをすべて無効にしてTwenty Nineteenのようなデフォルトテーマに切り替えます。こういったことがあるので、ステージング環境があったほうが嬉しいのです。
プラグインをすべて無効にし、デフォルトテーマに設定したなら、フロントエンドでサイトを読み込んでみましょう。エラーはありますか?WordPressを初期化したのですから、エラーは消えている可能性が高いでしょう。
次に、プラグインを1つずつ有効にして確かめていきます。プラグインを有効化し、フロントエンドでクリックしてみます。エラーはありませんか?問題の原因を見つけるまでこの操作を繰り返してください。プラグインに原因がなかったら、次はテーマを調べましょう。
問題の原因が見つかったら、次は解決策を考えます。サードパーティ製のプラグインやテーマなら、サポートフォーラムをあたって同じ問題を抱えているユーザーがいないか見てみます。そこで解決するかもしれません。解決しなくても、作成者に問題を報告することはできます。
これで解決しなかった場合、少し決断を下す必要があります。ソフトウェアに今まで互換性の問題が見つかっていないとすれば、別のソフトを探さなくてはいけません。テストして実行できる代わりのソフトが見つかれば大成功です。
理論的には他社製のソフトで埋め合わせることもできますが、良くてその場しのぎの絆創膏にしかならないと考えた方がよいでしょう。またアップデートがあった場合にこの手間は水の泡となりサイトに不具合が生じてしまうからです。
もし問題のあるコードがご自身の書いたものだった場合、PHPのマニュアルを見て基準に合わせる必要があります。面倒に思えますが、誰かに製品の修復をお願いするのに比べたらましです。
より良いスピードとセキュリティー
問題を発見して修復し、PHP 7.xを実行できたなら後はそのメリットを存分に享受しましょう。リクエストの処理速度が上がり、ユーザーエクスペリエンスの改善にもつながります。
さらにうれしいのは、PHPにセキュリティーホールが見つかっても、修復されるので安心だということです。さらには自分のWordPressサイトが最新標準に対応したコードで動いていることも実感できて満足でしょう。
PHPのアップデートは必ずしも楽しい作業ではありません。実際のところ、エラーの原因を見つけて修復するのには非常にいらいらします。しかし、結果的にはその努力は十分報われることでしょう。