Kinstaでは、専用コントロールパネル「MyKinsta」でWordPressサイトのPHPバージョンを簡単に選択することができます。ご利用のWordPressバージョンでサポートされている最新のPHPバージョンを使用することをお勧めします。
PHPのバージョンリリースは、最近予測可能なスケジュールに変更されました。新たにリリースされたバージョンは、2年間公式にサポートされ、さらに1年間のセキュリティアップデートが提供されます。お客様のWordPressサイトをできる限り高速・安全に保つため、Kinstaでも同様のスケジュールを採用し、公式サポートが終了したバージョンを随時削除していきます。
PHPをバージョンアップする重要性
2つの主な理由はセキュリティとスピードにあります。
WordPress自体を更新して、セキュリティを強化するのと同様に、PHPもバージョンアップが必要になります。また、PHPベンチマークレポートが示すように、新しいPHPバージョンを使用すると、一般的にパフォーマンスが大幅に向上します。
詳しくは、サポートされているPHPバージョンを使用する重要性をご覧ください。
ご利用のPHPバージョンが不明な場合は、MyKinstaの「ツール」画面にある「PHPエンジン」セクションで確認可能です。また、WordPress 5.0以上であれば、「サイトヘルス」でも確認することができます。
PHPのバージョン変更によるサイトの破損
PHPバージョンを変更するときに発生する問題は、サイトのコードでPHPの最新バージョンではサポートされていない古い関数が使用されているときに発生します。この原因はプラグインやテーマにあることが多いです。以下にご紹介する手順を参考にしてみてください。
WordPressのPHPバージョンを変更するには
今日は、PHPバージョンを変更する前に、WordPressサイトの互換性をテストする方法をご紹介します。これにより、サイトのダウンや設定の変更などを回避することができます。
一方、テストやトラブルシューティング、互換性の確認などの作業に慣れていない場合は、WordPress開発者に依頼する方が良いかもしれません。
単にWordPressの本番環境のPHPバージョンを変更するには、手順5まで読み飛ばしてください。ただし、異常が発生しないよう、手順1から順に進めていくことを強くお勧めします。
特に、PHP 7.4などの古いバージョンを実行している場合はご注意ください。
1. ステージングサイトを作成する
まず最初にステージングサイトを作成します。これは本番環境とは別のものであり、本番サイトを壊すことなく新しいバージョンのPHPを試験できます。
MyKinstaで、左側のナビゲーションにある「WordPressサイト」をクリックすると、サイト一覧が表示されます。ステージング環境を追加したいサイト(PHPのバージョンを変更したいサイト)をクリックします。上部の「ジャンプまたは検索…」検索バーをクリック(あるいはキーボードでCMD + /
かCTL + /
をクリック)して、「新規環境を作成」をクリックします。
ここからの手順は、WordPressステージング環境を作成する方法をご覧ください。
また、ステージング環境に関する注意事項も必ず確認してください。例えば、サードパーティのCDNをご利用の場合、サイトを正しくレンダリングするために無効にする必要がある場合があります。
これは、ステージングサイトが別のURLを使用しているためです。ステージング環境ではまた、キャッシングは無効になっているため、パフォーマンスをテストするときにご注意ください。
2. WordPressのPHPバージョンを変更する
WordPressサイトのPHPバージョンを変更するには、「WordPressサイト」画面でPHPバージョンを変更したいサイトを選択します。「ツール」画面の「PHP設定」セクションにあるの「変更する」をクリックし、「PHPバージョン」ドロップダウンから任意のバージョンを選択します。
なお、PHPバージョンをテストする際は、本番環境ではなく、WordPressステージング環境を選択してください。まずは、現在使用しているバージョンから1つ上のバージョンでテストすることをお勧めします。サイトに問題が見られる場合は、Kinstaのカスタマーサポートまでいつでもご連絡ください。
任意のPHPバージョンを選択したら、「PHP設定の変更」をクリックして確定します。
複数のサイトでPHPバージョンを一括変更する方法
MyKinstaの一括操作機能を使って、複数のWordPress環境のPHPバージョンを一度に変更することも可能です。
MyKinstaにログイン後、「WordPressサイト」画面を開き、環境名の横にあるチェックボックスを使って、任意の環境を複数選択します。
サイト一覧の右上に出現する「操作」ドロップダウンを選択して、「PHPバージョンの変更」をクリックします。
任意のバージョンを選択したら、「PHPバージョンを変更」をクリックして確定します。
この処理には最大3分かかります。処理が完了するとPHPエンジンが再起動するため、WordPress管理画面が数秒ダウンする場合があります。フロントエンドは停止しないため、訪問者には影響がありません。
PHPバージョンの変更中、ページを離れることはできますが、処理が完了するまでキャッシュ管理などの機能は使用することができなくなります。処理が完了すると、MyKinsta内に通知が表示されます。
3. ウェブサイト、プラグイン、テーマなどのテスト
これで、PHPの最新版(またはご希望のバージョン)のステージングサイトができました。最初に、WordPressサイトをブラウジングしたりクリックしたりして、異常がないかを確認します。
プラグインやテーマなど、互換性のないものがある場合、ウェブサイトのフロントエンドで500エラー(501、502、503、504など) や「死の真っ白画面」が表示されることがあります。この場合、真の原因を特定できる最も簡単で速い方法は、すべてのサードパーティ製のプラグインを無効にし、1つずつ再度有効にすることです。なお、ステージングサイトであるため、本番サイトを破壊することは一切ありません。
WordPress管理画面の「プラグイン」ページで、すべてのプラグインを選択します。次に、プルダウンの「停止」を選択して「適用」をクリックします。
その後、1つずつ再度有効にして、毎回WordPressサイトにアクセスします。これにより、真の原因を絞り込むことができます。エラーが原因でWordPress管理画面にログインできない場合は、FTPを使用してプラグインを無効にすることも可能です。
WordPressのテーマでも同様のテストを行うことができます。Twenty Nineteenテーマなど、デフォルトのWordPressテーマに一時的に切り替えるだけです。
MyKinstaでログファイルを確認する
異常を引き起こすプラグインやテーマを特定できたが、なぜかはわかりませんか?そこで、WordPressのエラーログが便利です。単に、WordPressサイトの1つをクリックし、右側の「エラーログ」をクリックします。
そこで、error.log、kinsta-cache-perf.log、およびaccess.logファイルを確認できます。デフォルトでは、最後の1,000行が表示されますが、スライダーをドラッグして、最後の2万行を表示するようにすることが可能です。
注)MyKinstaのログツールにはデバッグ情報が表示されません。デバッグ情報を表示するには、以下の手順でWP_DEBUG
を有効にしてください。
SFTPを使用して生ログファイルの確認する
変更されていないままのログを確認するには、SFTPを使用して/logs/
を確認します。
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のお客様は、MyKinstaでWordPressのデバッグモードを有効にすることができます。手順は「WordPressサイト」> 「ツール」> 「WordPressデバッグ」に移動し、「利用する」ボタンをクリックするだけ。これでSSHまたはSFTPをご利用せずにデバッグモードが有効になり、PHPのエラーや通知を確認できるようになります。
当社の自己修復PHP機能は、異常が発生した場合にPHPを自動的に再起動します。手動でPHPの再起動をご希望の場合は、該当するサイトの「ツール」画面に移動し、「PHPの再起動」をクリックしてください。
デバッグログ機能をWordPressで有効にする
SSHアクセスまたはMyKinstaへのアクセスをお持ちでない場合は、デバッグログ機能をWordPressで有効化してください。まず、SFTPでウェブサイトにアクセスします。次にwp-config.php
ファイルを編集できるようにダウンロードします。
/* That's all, stop editing! Happy blogging. */
を探し、その直前に次を追加します。
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
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プラグインであることをすばやく簡単に絞り込むことができます。
プラグインとの互換性の問題が発生することは、避けたいもの。以下のヒントを参考にしてみてください。
- プラグインとテーマを最新の状態に更新する
- プラグインまたはテーマ開発者に連絡をとり、PHP 7.4(またご利用のバージョン)のサポートを追加するように依頼する(これを考慮し、Kinstaではサポート終了が発表された時点でお客様にお知らせしています)
- 該当のPHPバージョンと互換性があり同じ機能を持つ代替プラグインを探す
- WordPress開発者を雇用して対応してもらう
- PHPを低いバージョンに変更し、該当のプラグインまたはテーマが正常に動作するかを確認する。正常である場合は、コードが更新されるまでそのバージョンを使用することができますが、PHP 8.0の方がより高速でサポートの期間が長いため、最善の策ではありません(どうしても必要なプラグインで、PHP 7.4でしか機能しないという場合はOK)。
4. ステージングサイトを本番サイトに反映する
PHPバージョンのテストが完了したら(プラグインやテーマの変更が伴うかどうかにもよって)ステージング環境を本番環境に反映することも、ステージングサイトに加えたのと同じ変更を本番サイトで実行することもできます。
PHPの新しいバージョンでも本番サイトが正常に機能するようにするには、ステージング環境を徹底的に調整しなければならないことがあります。ステージング環境で行った調整は、MyKinstaから数回のクリックで本番サイトに反映することができます。
作業を行ったステージング環境を選択し、情報画面上部の「別の環境に反映する」ドロップダウンで、「次に適用する→Live」をクリックします。これで完了です。
WordPressサイトのPHPバージョンの変更に関して、ご質問やご不明点がございましたら、MyKinstaのライブチャットサポートよりお問い合わせください。24時間365日ご利用いただけます。
5. 本番サイトのPHPを変更する
以上でPHPバージョンの変更準備が整いました。先ほどの手順2と同じ方法で、今度は本番サイトのPHPバージョンを変更します(「ツール」>「PHP設定」>「変更する」で、任意のPHPバージョンを選択)。