Kinstaのお客様には、MyKinstaダッシュボードで各WordPressウェブサイトのPHPバージョンを個別にアップグレードしたり変更したりいただけます。PHP 7.3は、以前のバージョンよりもはるかに高速で、リソースに優しくて、安全であるため、強くお勧めします。実は、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倍以上改善され、印象的でした。7.3では、7.0と比較してさらに20%~25%の改善が見られました。7.4のパフォーマンスも7.3と比較して向上しました。

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

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

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

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

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

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

PHPアップグレードの納期

2019年10月1日に、Kinstaのすべてのお客様を対象に本番環境のPHP 5.6、7.0、および7.1への切り替えを無効にしました。本番環境でPHP 7.2、7.3、または7.4に切り替えることはできますが、PHP 5.6、7.0、および7.1に戻すことはできません。

PHP 5.6、7.0、または7.1のウェブサイトは、2019年12月9日に自動的にPHP 7.2にアップグレードされます

ご不便をおかけして申し訳ありません。私たちは、本業界の最も速やくて安全な環境を運営することを誇りに思っております。そのためにお客様のすべてのウェブサイトがセキュリティを頻繁に更新されるテクノロジを使用していることを確保する必要があります。

PHPバージョンを安全に更新する方法(手順)

今日は、PHPバージョンを更新する前に、WordPressウェブサイトの互換性を最適に試験できる手順をご説明します。ダウンタイムがなく、設定をあまり触らなくてもいい方が多いでしょう。一方、追加の試験、トラブルシューティング、さらにはWordPress開発者を採用して互換性を確保する必要のある方もいるかもしれません。

単に本番環境のPHPバージョンを更新したい方は、ステップ2にジャンプしてください。ただし、異常が発生しないように、以下のすべてのステップに従うことを強くお勧めします。特に、PHP 5.6などの古いバージョンを実行している場合はそうです。

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

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

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

MyKinstaダッシュボードで、左側のナビゲーションの「 サイト 」をクリックします。そこでお客様のすべてのウェブサイトのリストが表示されます。ステージング環境を追加するもの(PHPバージョンを更新するウェブサイト)をクリックします。右上のドロップダウンメニューの「 ステージング環境 」をクリックし、「 ステージング環境の作成 」ボタンをクリックします。

WordPressステージングサイトを作成する

WordPressステージングサイトを作成する

ステージング環境に関する注意事項も必ず確認してください。たとえば、サードパーティのCDNをご利用の場合には、ウェブサイトが正しくレンダリングするには、CDNを無効にする必要がある場合があります。これは、ステージングサイトが別のURLを使用しているためです。ステージング環境ではまた、キャッシングは無効になっているため、パフォーマンスをテストするときにご注意ください。

ステップ2:PHPエンジンを切り替える

WordPressウェブサイトのPHPバージョンを更新するには、「サイト」メニューにアクセスして、PHPバージョンを切り替えるウェブサイトを選択します。次に、「ツール」タブをクリックします。「PHPエンジン」のドロップダウンをクリックして、ご希望のPHPバージョンを選択します。

新しいPHPバージョンをテストする際に、まず選択されている環境は本番環境ではなくステージング環境であることを確認してください。最初にPHP 7.4をテストすることをお勧めします。異常が発生した場合は、PHP 7.2などのより古いバージョンに戻すことができます。

PHP 7.4への切り替え

PHP 7.4への切り替え

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

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

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

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

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

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

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

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

プラグインやテーマなど、互換性のないものがある場合、ウェブサイトのフロントエンドで500エラーや「死の真っ白画面」が表示されることがあります。この場合、真の原因を特定できる最も簡単で速い方法は、すべてのサードパーティ製のプラグインを無効にし、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ログツールにはデバッグ情報が表示されません。デバッグ情報を表示するには、以下に説明があるように、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は非常に貴重なツールになります。

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

SSHアクセスをお持ちでない方は、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 7.4の方はより高速でサポートの期間も長いため、これはお勧めしません。ただし、絶対に必要なものでPHP 7.2でのみ機能するものの場合は、できることはできます。

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

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

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

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

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

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


このチュートリアルが面白かった方なら、当社のサポートも大好きでしょう。Kinstaのすべてのホスティングプランには、ベテランのWordPress開発者とエンジニアによる24時間365日のサポートが付いています。フォーチュン500のお客様をサポートしているチームとチャットしませんか。当社のプランをご確認ください。