HTTPステータスコードのエラーに遭遇すると、特にメッセージの意味や原因がわからない場合は、途方に暮れてしまうことも。「HTTP 408 Request Timeout」は、そんなエラーの1つです。
しかし、このエラーにもトラブルシューティングと解決方法がありますのでご安心を。まずは原因を特定して、解決策を講じましょう。
この記事では、HTTP 408エラーの概要と一般的な原因について触れた後、8つの解決方法をご紹介していきます。では、早速本題に入りましょう。
「HTTP 408 Request Timeout」エラーとは
HTTPステータスコードは、クライアント(ウェブブラウザ)から送信されるリクエストに対し、ウェブサーバーから送信される内容を表すものです。また、リクエストに応じて、クライアントを別のリソースにリダイレクトすることもあります。
最も一般的なHTTPステータスコードは「404」で、要求されたリソースが見つからなかったことを意味します。他には、200(OK)、400(Bad Request)、500(Internal Server Error)などもよく見られます。
ステータスコードは、以下5つのカテゴリに分類されます。
- 情報提供:サーバーがリクエストを処理中
- 成功:リクエストが正常に完了
- リダイレクト:別のリソースにリダイレクトが必要
- クライアントエラー:リクエストにエラーが発生
- サーバーエラー:サーバーにエラーが発生
今回ご紹介するHTTP 408エラーは、4つ目のクライアントエラーに属します。サーバーがクライアントからある制限時間内にリクエストを受け取れなかった(タイムアウト)ことを示すものです。クライアントが要求を送信するのに時間がかかりすぎたり、サーバーが忙しすぎて処理できなかったりする場合に起こります。
HTTP 408エラーは、「504 Gateway Timeout」のステータスコードと似ていますが、前者はゲートウェイやプロキシサーバーから来るものではなく、クライアントが接続しているウェブサーバーから返されます。
「HTTP 408 Request Timeout」エラーの主な原因
「HTTP 408 Request Timeout」エラーには、以下いくつかの原因が考えられます。
- ネットワークのレイテンシ
- クライアントのタイムアウト
- サーバーが忙しすぎてリクエストを処理できない
HTTP 408エラーは、ウェブサイトのサーバーへのリクエストの送信に時間がかかり、サーバーが待機できる時間を超えてしまったことを意味します。このような状況は、例えばインターネット上のアクセスが多かったり、クライアント側の接続速度が遅かったりすると発生します。
このエラーの原因は、クライアント側とサーバー側のどちらにあります。HTTP 408エラーはクライアントエラーに分類されると上記で触れましたが、必ずしもブラウザやデバイスに起因するとは限りません。サーバーの設定に誤りがある、またはリクエストを正しく処理できていないということも考えられます。
「HTTP 408 Request Timeout」エラーを解決するには(8つの方法)
HTTP 408エラーの詳細について分かったところで、解決策を見ていきましょう。以下、クライアント側とサーバー側の2つに分けて、全部で8種類の方法をご紹介します。
クライアント側の解決策
まずは、クライアント側の解決策を見ていきます。
1. サイトのバックアップ
HTTP 408エラーのトラブルシューティングを行う前に、まずはウェブサイトのバックアップを作成してください。バックアップがあれば、万が一何か問題が発生しても、ファイルやデータベースの最新版をいつでも復元することができます。
サイトのバックアップ方法はいくつかあり、まず1つは自分で行う手法。これには、FileZillaなどのSFTP(セキュアファイル転送プロトコル)クライアントを使用します。利用しているサーバーから提供されるSFTP認証情報でサーバーに接続し、ルートディレクトリ(public_htmlフォルダ)からファイルをダウンロードしましょう。
次に、phpMyAdminでデータベースをダウンロードします。Kinstaをご利用であれば、MyKinstaから「サイト」>(サイト名)>「情報」からアクセス可能です。
「phpMyAdminを開く」を選択して、データベースマネージャーを開き、メニューからサイトのデータベースをクリックします。
次に、画面上部の「Export」タブをクリックし、Formatが「SQL」を選択していることを確認した上で、「Go」をクリックします。すると、データベースファイルのダウンロードが開始されます。
あるいは、UpdraftPlusなどのバックアッププラグインを使う方法も。プラグインをインストールして有効にした後、WordPressの管理画面で「設定」>「UpdraftPlus Backups」に移動して、「Backup Now」をクリックします。
また別の方法として、利用しているサーバーのバックアップ機能を使う手もあります。Kinstaを利用している場合、MyKinstaにログイン後、「バックアップ」画面に移動すると、既存のバックアップを確認することができます。
手動のバックアップは最大5つまで作成可能で、2週間保存されます。また、Kinstaでは、ステージング環境やローカル環境へのバックアップに利用できるローカルWordPress開発ツール「DevKinsta」を無料提供しています。
これは、DevKinstaにアクセスして、「Kinstaからインポート」を選択すると実行可能です(サーバーの認証情報を確認する必要がある場合があります)。サイトを選択すると、後の処理はすべて自動で行われます。
2. URLの確認
HTTP 408エラーが発生する単純な原因として、URLの入力間違いというものも挙げられます。そのため、まずはURLを再確認し、タイプミスがないかを見直しましょう。
ドメイン名、特にスラッシュやハイフンがある場合は注意です。URLを再入力して、ページを再読み込みしましょう。まだエラーが表示される場合は、次の解決策に進みます。
3. 最近のデータベースの変更を確認
最近データベースに変更を加えた場合、これが原因になっていることも。これを解決するには、加えた変更を元に戻さなければなりません。
最近インストールした拡張機能や更新によって、データベースのレコードが変更されて、エラーが発生している可能性があります。これに該当するかどうかを見極めるには、データベース(phpMyAdmin)を開いて、最近変更されたテーブルやレコードを確認してみてください。何か変化を見つけたら、元の状態に復元してください。
4. 拡張機能とプラグインの削除
拡張機能やプラグインをサイトに追加すると、今回のエラーを含め、時としてさまざまな非互換性の問題が発生することがあります。これがエラーを引き起こしているかどうかを確かめるには、サイトにインストールしているすべてのプラグインを無効化してみてください。
WordPressの管理画面にアクセスできる場合は、「プラグイン」に移動してすべてのプラグインを選択し、「一括操作」のドロップダウンメニューから「停止」を選択し、「適用」をクリックしてください。
管理画面にアクセスできない場合は、SFTPでサイトに接続し、pluginsフォルダの名前を「plugins_old」などに変更すると、拡張機能を一括で無効にすることができます。
この状態で、サイトに再度アクセスしてみてください。エラーが消えている場合は、プラグインがエラーを引き起こしていたことがわかります。
プラグインを1つずつ有効化してサイトを確認し、原因となっているプラグインを特定します。見つけたプラグインは削除して、代替プラグインを探しましょう(あるいは、プラグイン開発者に問題の報告を行ってください)。
5. 最近の変更を取り消す
プラグインのインストールやWordPressの更新など、最近WordPressサイトに何らかの変更を加えた場合は、これが原因になっていることもあり得ます。新しいツールは、設定の問題を引き起こすことがあります。最近の変更を取り消すため、サイトを以前のバージョンに復元しましょう。
Kinstaをご利用の場合、MyKinstaから「サイト」に移動して、該当のサイトを選択します。その後、「バックアップ」画面に移動します。
バックアップの一覧から、復元したいバージョンを見つけて「復元先を選択」を展開して、「Staging」 または「Live」を選択します。
バックアップ復元の確認画面で、「バックアップを復元」をクリックします。復元したら、エラーが解消されているかを確認しましょう。
サーバー側の解決策
上記いずれの方法でもエラーが解決されない場合、サーバー側の問題が原因になっている可能性があります。以下順番にトラブルシューティングを行なっていきましょう。
6. サーバーの設定ファイルを確認する
HTTP 408エラーの原因を特定する方法の1つとして、SFTPを使ってサーバーの設定ファイルを確認することができます。具体的な手順は、お使いのサーバーによって異なります。
ApacheまたはNginxのどちらかであるはずです。Kinstaを利用している場合は、Nginxです。
Apacheを利用している場合は、サイトのルートディレクトリ内にある.htaccessファイルを見つけて開きます。以下の行を検索してください。
- KeepAliveTimeout
- RequestReadTimeout
上記ディレクティブを見つけたら、行の前に「#」を加えてコメントアウトします。その後、ファイルを保存して、ブラウザでページを再度読み込みます。
Kinstaユーザーであれば、MyKinstaから「サイト」から該当のサイトに移動すると、.htaccessファイルを確認できます。「SFTP/SSH」セクションの認証情報を使って、FTPクライアント経由でサイトに接続します。
次に、public_htmlフォルダに移動して、.htaccessファイルを開いてください。
先ほどのどちらのディレクティブを探します。見つかった場合は、コメントアウトして変更を保存しましょう。
7. アプリケーションログを確認する
サーバーサイドのログで、アクション、要求されたページ、接続されたサーバーなど、アプリケーションに関する重要な情報を確認することができます。Kinstaでは、MyKinstaの「ログビューア」セクションでエラーログを確認することができます。
Kinsta以外をご利用の場合、または利用サーバーにログ機能がない場合は、以下のコードをwp-config.phpファイルに貼り付けます。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
これで、WordPressのデバッグモードが有効化されます。
Kinstaをご利用の場合は、MyKinstaから「サイト」>(サイト名)>「ログ」に移動します。
表示される「ログビューア」セクションのドロップダウンメニューから「access.log」を選択します。すると、ウェブサイトからのすべてのHTTPリクエストを閲覧することができます。また、検索バーでHTTP 408リクエストを探すことも可能です。
エラーが見つかったら、その情報をもとに、エラーが発生しているウェブページを特定することができます。これによって、エラーの原因を絞り込みます。
8. アプリやスクリプトのデバッグ
まだHTTP 408エラーが消えない場合は、サイトのデバッグを行う必要があります。これには、いくつかの方法があります。
まず1つ目は、Query Monitorなどのプラグインを使用する方法。
Query Monitorは、サイトのパフォーマンスや開発状況をデバッグする無料プラグインです。データベースクエリ、スクリプト、タイミングなどを確認することができます。
または、アプリケーションパフォーマンス監視(APM)ツールを使ってデバッグすることも可能です。APMツールは、サイトやアプリケーションのパフォーマンスを監視し、最適化するのに有用です。
APMツールを使用すると、サイトのパフォーマンスやボトルネックを把握することができるため、それをもとにサイトをデバッグすることができます。サイトの動作が遅いなど、パフォーマンスの問題を引き起こしている原因を特定し、修正するのに便利です。
KinstaのAPMツールは、WordPressサイトに特化したパフォーマンス監視ツールで、パフォーマンスの問題を特定することができます。Kinstaのホスティングサービスに無料で付帯するツールです。
MyKinstaから、「サイト」>(サイト名)>「APM」に移動します。
APMを有効化すると、パフォーマンスの問題の特定や結果の監視など、さまざまな機能を使用することができます。
まとめ
HTTPステータスコードは、クライアントとサーバーの要求に関するさまざまな情報を伝えてくれます。そして、このメッセージの中には、時に「HTTP 408 Request Timeout」のようなエラーメッセージが含まれることも。
今回ご紹介したように、このエラーの原因は、クライアント側とサーバー側のどちらかにあります。トラブルシューティング方法としては、最近の変更の確認と取り消し、サーバーの設定ファイルとアプリケーションログの確認、アプリとスクリプトのデバッグなどが挙げられます。
サイトの問題を特定、テスト、修正できるツールが使えるホスティングサービスへの乗り換えをお考えですか?Kinstaのホスティングプランをチェックして、KinstaのAPMツールと開発ツールをぜひお試しください。