Kinstaのお客様には、MyKinstaダッシュボードで各WordPressウェブサイトのPHPバージョンを個別にアップグレードしたり変更したりいただけます。現在Kinstaでは、PHP 8.0, 8.1 , 8.2をサポートしています。

PHP 8.1あるいは最新版の8.2は、以前のバージョンよりもはるかに高速で、リソースに優しくて、安全であるため、強くお勧めします。実は、PHPベンチマークレポートでは、スピードが3倍になる設定もあることが分かりました。

ご存じかもしれませんが、PHPは予測可能なリリーススケジュールを発表しました。PHPの各新しいバージョンはそれぞれ2年間積極的に保守され、さらに1年間重要なセキュリティアップデートが提供されます。お客様のウェブサイトが可能な限り高速かつ安全であることを確保するために、当社も同じスケジュールを採用することにしました。つまり、PHPの各バージョンをサポート終了(EOL)日に削除します。

Kinstaではまた、PHPの公式スケジュールを採用するだけでなく、2020年以降、KinstaのプラットフォームでのPHPの古いバージョンのサポート終了日を毎年の11月1日にさせていただきます。そうすると、お客様も当社のチームも、ホリデーシーズン(ブラックフライデー、サイバーマンデー、クリスマスなど)の前にアップグレードを済ませます。

PHPバージョンを更新する理由

2つの主な理由はセキュリティとスピードです。

セキュリティの脆弱性から身を守るためにWordPressコアを更新するのと同じように、PHPのバージョンアップも忘れてはなりません。PHPをバージョンアップすることで、大幅なスピードアップが期待できます。PHP 7.0は、5.6に比べて2倍以上の性能向上という大きな飛躍を遂げました。バージョンを重ねるごとに性能の向上が見られます。

詳細については、当社のPHPのサポートされているバージョンを使用する理由についての記事をご参照ください。

ご利用のPHPバージョンが分からない方には、MyKinstaダッシュボードの「ツール」メニューで確認いただけます。または、WordPress 5.0以上をご利用の場合は、「サイトヘルス」ツールでもPHPバージョンを確認できます。

WordPressのサイトヘルスツールで見たPHPバージョン
WordPressのサイトヘルスツールで見たPHPバージョン

ウェブサイトが破壊されたらどうすればいいか?

PHPバージョンを更新するときに発生する異常は、ウェブサイトのコードでPHPの新しいバージョンではもはやサポートされていない古い関数が使用されているときに発生します。あるプラグインやご利用のテーマが真の原因である場合は多いです。当社の下記の手順にはステップバイステップ異常処理手順も含まれています。

WordPressのPHPバージョンを更新するには

今日は、PHPバージョンを更新する前に、WordPressウェブサイトの互換性を最適に試験できる手順をご説明します。ダウンタイムがなく、設定をあまり触らなくてもいい方が多いでしょう。

一方、追加の試験、トラブルシューティング、さらにはWordPress開発者を採用して互換性を確保する必要のある方もいるかもしれません。

単にWordPressの本番環境のPHPバージョンを更新したい方は、ステップ5にジャンプしてください。ただし、異常が発生しないように、以下のすべてのステップに従うことを強くお勧めします。

特に、PHP 7.4などの古いバージョンを実行している場合はそうです。

  1. ステージングサイトを作成する
  2. PHPエンジンを切り替える
  3. ウェブサイト、プラグイン、テーマなどの試験
  4. ステージングを本番サイトに公開する
  5. 本番サイトでのPHPの切り替え

ステップ1:ステージングサイトを作成する

まず最初にステージングサイトを作成します。これは本番環境とは別のものであり、本番サイトを壊すことなく新しいバージョンのPHPを試験できます。

コントロールパネル「MyKinsta」で、左側のナビゲーションにある「サイト」をクリックすると、サイト一覧が表示されます。ステージング環境を追加したいサイト(PHPのバージョンを変更したいサイト)をクリックします。サイト名の横にある環境セレクタをクリックし、ドロップダウンメニューからステージングを選択し、「ステージング環境を作成」ボタンをクリックします。

MyKinstaでWordPressステージング環境を作成する
MyKinstaでWordPressステージング環境を作成する

ステージング環境に関する注意事項も必ず確認してください。たとえば、サードパーティのCDNをご利用の場合には、ウェブサイトが正しくレンダリングするには、CDNを無効にする必要がある場合があります。

これは、ステージングサイトが別のURLを使用しているためです。ステージング環境ではまた、キャッシングは無効になっているため、パフォーマンスをテストするときにご注意ください。

ステップ2:WordPressのPHPバージョンを更新する

WordPressサイトのPHPバージョンを変更するには、「サイト」から、PHPバージョンを変更したいサイトを選択します。次に、「ツール」タブをクリックし、「PHPエンジン」の下にある「変更」ボタンをクリックし、ドロップダウンメニューから希望のPHPバージョンを選択します。

PHPバージョンのテスト時には、本番環境ではなく、ステージング環境が選択されていることを確認してください。最初にPHP 8.0を使ってテストを実行することをお勧めします。サイトに問題が見られる場合は、Kinstaのカスタマーサポートまでいつでもご連絡ください。

MyKinstaを使用したPHPバージョン間の切り替え
MyKinstaを使用したPHPバージョン間の切り替え

ご希望のPHPバージョンを選択すると、確認画面が表示されます。 「PHPバージョン間の切り替え」ボタンをクリックして、確定します。

PHPバージョン間の切り替えを確定する
PHPバージョン間の切り替えを確定する

この処理には最大3分かかります。処理ができたらPHPエンジンが再起動されるため、WordPressのバックエンドで数秒のダウンタイムが発生する場合がありますが、訪問者はダウンタイムを一切経験しません。

PHPエンジン切り替え中には、このページを離れても結構ですが、新しいエンジンがアクティブになるまで、キャッシュ管理などの機能は使用できなくなります。完了するとすぐにダッシュボードを介して通知させていただきます。

(参照文献:PHPのバージョンを変更すると、WordPressの「サイトに技術的な問題が発生しています」エラーが直る場合があります。)

ステップ3:ウェブサイト、プラグイン、テーマなどの試験

これで、PHPの最新版(またはご希望のバージョン)のステージングサイトができました。最初に、WordPressウェブサイトをブラウズしたりクリックしたりし、異常がないかを確認します。

プラグインやテーマなど、互換性のないものがある場合、ウェブサイトのフロントエンドで500エラー501502503504など) や「死の真っ白画面」が表示されることがあります。この場合、真の原因を特定できる最も簡単で速い方法は、すべてのサードパーティ製のプラグインを無効にし、1つずつ再度有効にすることです。なお、ステージングサイトであるため、本番サイトを破壊することは一切ありません。

WordPressダッシュボードの「プラグイン」画面で、すべてのプラグインを選択します。次に、プルダウンの「停止」を選択して「適用」をクリックします。

WordPressプラグインのダッシュボードでの一括停止
WordPressプラグインのダッシュボードでの一括停止

その後、1つずつ再度有効にして、毎回WordPressウェブサイトにアクセスします。これにより、真の原因を絞り込むことができます。エラーのため、WordPressダッシュボードにアクセスできませんか?ご心配なく。こちらのFTPを使用してプラグインを無効にする手順についての記事をご参照ください。

同様なテストはWordPressのテーマでもできます。Twenty Nineteenテーマなど、デフォルトのWordPressテーマに一時的に切り替えるだけです。

MyKinstaでログファイルを確認する

異常を引き起こすプラグインやテーマを特定できたが、なぜかはわかりませんか?そこで、WordPressのエラーログが便利です。単に、WordPressウェブサイトの1つをクリックし、右側の「エラーログ」をクリックします。

そこで、error.log、kinsta-cache-perf.log、およびaccess.logファイルを確認できます。デフォルトでは、最後の1,000行が表示されますが、スライダーをドラッグして、最後の20,000行を表示するようにすることが可能です。

MyKinstaを使用してPHPエラーを表示する
MyKinstaを使用してPHPエラーを表示する

注:MyKinstaログツールにはデバッグ情報が表示されません。デバッグ情報を表示するには、以下に説明があるように、WP_DEBUG を有効にします

SFTPを使用して生ログファイルの確認する

変更されていないままのログを確認するには、SFTPを使用して/logs/を確認します。

SFTPのWordPressエラーログフォルダ
SFTPのWordPressエラーログフォルダ

SSHでログファイルを追跡する

ウェブサイトが試験中に、SSHを使用してログを追跡できます。つまり、テスト中にログの更新をライブで監視できます。Kinstaの全てのホスティングプランにはSSHアクセスが含まれています。

最後の500行を表示する

tail -n 500 /www/sitename/logs/error.log

ファイルをライブで見る

エラーログファイルの更新をリアルタイムで監視します。

tail -f /www/sitename/logs/error.log

SSHアクセスをお持ちの方にとって、WP-CLIは非常に貴重なツールになります。

デバッグモードをMyKinstaで有効にする

Kinstaのお客様には、WordPressのデバッグモードをMyKinstaダッシュボードを使用して有効にしていただけます。「サイト」> 「ツール」> 「WordPressデバッグ」に移動し、「利用する」ボタンをクリックするだけです。これにより、SSHまたはSFTPをご利用せずにデバッグモードを有効にして、PHPのエラーや通知を確認いただけます。

デバッグモードはMyKinstaで有効になっている
デバッグモードはMyKinstaで有効になっている

当社の自己修復PHP機能は、異常が発生した場合にPHPを自動的に再起動します。手動でPHPの再起動をご希望の場合は、該当するサイトの「ツール」画面に移動し、「PHPの再起動」をクリックしてください。

MyKinstaダッシュボードを使用してPHPを再起動する
MyKinstaダッシュボードを使用してPHPを再起動する

デバッグログ機能をWordPressで有効にする

SSHアクセスまたはMyKinstaへのアクセスをお持ちでない場合は、デバッグログ機能をWordPressで有効にしてください。まず、SFTPでウェブサイトにアクセスします。次にwp-config.phpファイルを編集できるようにダウンロードします。

wp-config.phpファイルをダウンロードする
wp-config.phpファイルをダウンロードする

/* That's all, stop editing! Happy blogging. */を探し、その直前に次を追加します(下記を参照):

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
WordPressでのデバッグを有効にする
WordPressでのデバッグを有効にする

wp-config.phpファイルに既に上記のコードが存在しているが、「false」に設定されている場合には、単に 「true」に変更してください。これにより、デバッグモードが有効になり、/wp-content/debug.logファイルが完全に表示されます。存在している場合には、WordPress管理画面にも警告またはエラーが表示されます。

注:これらのファイルは急速に重くなるため、完了したら無効にすることを忘れないでください。

何を探せばいいか?

プラグインやテーマが何千も存在しているため、残念ながら、発生する可能性のあるすべてのエラーを述べることはできません。異常は通常、コード(関数、構文など)が該当のPHPバージョンとの互換性がないために発生します。たとえば、下記のような内容が表示されます。

500: Fatal error: Uncaught Error: A semicolon (';') is expected here. in /www/sitename/public/wp-content/plugins/bbpress-shortcodes/bbpress-shortcodes.php:177

上記からわかるように、異常の原因はbbPress Shortcodesプラグインであることをすばやく簡単に絞り込むことができます。

1つまたは2つのプラグインとの互換性の問題が発生することは最悪のシナリオです。その場合は、次のことをお勧めします。

  1. ご利用のプラグインとテーマは最新バージョンでないと、更新してください。
  2. プラグインまたはテーマの開発者に連絡し、PHP 7.4(またご利用のバージョン)のサポートを追加するように依頼します。これこそは、廃止予定日の前にお知らせする理由の一つです!
  3. 同じ機能を提供し、該当のPHPバージョンと互換性のある代替プラグインを探します。
  4. WordPressの開発者を採用し、異常を処理してもらいます。
  5. PHPエンジンをより低いバージョンに切り替え、該当のプラグイン及びテーマは正常に機能しているか確認してください。正常に機能すると、開発者がコードを更新するまでPHPの低いバージョンを使用することができますが、PHP 8.0の方はより高速でサポートの期間も長いため、これはお勧めしません。ただし、絶対に必要なものでPHP 7.4でのみ機能するものの場合は、できることはできます。

ステップ4:ステージングを本番サイトに公開する

PHPのテストが完了したら(プラグインやテーマの変更が伴うかどうかにもよって)ステージング環境を本番環境に反映することも、ステージングサイトに加えたのと同じ変更を本番サイトで実行することもできます。

ウェブサイトがPHPの新しいバージョンでも正常に機能するために、ステージングをかなり徹底的に調整する必要がある場合があります。その場合、「本番サイトに公開」機能を使用すると、時間を節約できます。

これを行うには、まず選択されている環境はステージング環境であることを確認してください。次に、「本番サイトに公開」ボタンをクリックします。

WordPressのステージング環境を本番環境に公開する
WordPressのステージング環境を本番環境に公開する

WordPressウェブサイトのPHPバージョンの更新に関する不明点などがございましたら、当社の24時間年中無休のサポートチームまでご連絡ください。

ステップ5:本番サイトのPHPを変更する

これでPHPの変更準備が整いました。上記手順2と同じ方法で、今度は本番サイトのPHPバージョンを変更します(「ツール」>「PHPエンジン」>「変更」>ご希望のPHPバージョンを選択)。