ローカルホスト(XAMPP、Laragon、MAMP)の ERR_CONNECTION_REFUSED

結論
localhost の `ERR_CONNECTION_REFUSED` は、ブラウザーが待ち受け中のローカル Web サーバーに接続できないことを意味します。XAMPP、Laragon、MAMP では、まず Apache または Nginx が起動していることを確認してください。起動しない場合は、80 または 443 のポート競合を確認し、サーバーのエラーログを調べます。サーバーが 8080 などのカスタムポートを使用している場合は、localhost のアドレスにそのポートを含めてください。
要点
- プロジェクトファイルを変更する前に、Apache または Nginx が起動していることを確認します。
- サーバーが起動してすぐ停止する場合、通常はポート競合または設定エラーが原因です。
- ポート 80 と 443 は、ローカルスタックがそれらのポートを使用する設定になっている場合にのみ確認します。
- エラーログを確認して、バインドまたはポートの問題と、無効なサーバー設定を区別します。
- スタックがカスタムポートを使用している場合は、
localhost:8080のように、そのポートを付けてlocalhostをテストします。 - デフォルトページが表示されれば接続は機能しています。その後、プロジェクトのルーティング問題を別途調査してください。
Site Administrator
このエラーの意味と見分け方
- ブラウザーに
localhostまたはローカルホスト名のERR_CONNECTION_REFUSEDがすぐに表示される。 - XAMPP、Laragon、MAMP で Apache または Nginx が停止、起動失敗、または停止状態として表示される。
- サーバーが起動後に停止し、ポート、設定ファイル、構文エラーに関するメッセージが表示されることがある。
- 再起動、OS の変更、ローカルサーバーのインストール、または設定編集の後に問題が発生する。
- コンピューター上にプロジェクトファイルは存在するが、ブラウザーがローカルサーバーに接続できない。
- カスタムポートのサーバーは一方のアドレスでは動作する一方、ブラウザーがデフォルトの HTTP ポートを使用するため、通常の
localhostでは失敗することがある。
可能性の高い順の主な原因
- Apache または Nginx が起動していない — ローカルサービスが起動されていないか、起動処理中に失敗した可能性があります。
- 別のプロセスが設定済みポートを使用している — IIS、別の XAMPP/Laragon/MAMP、単体の Apache または Nginx、仮想化ソフトウェア、その他のアプリケーションが、すでにポート 80 または 443 で待ち受けている可能性があります。
- サーバー設定が無効である —
httpd.conf、Nginx の設定ファイル、バーチャルホストファイル、または最近編集した別のサーバーファイルに構文エラーがあると、サービスがすぐに停止することがあります。 - ブラウザーが間違ったポートを使用している — ポート 8080 などのカスタムポートに設定されたスタックは、通常、デフォルトの HTTP ポートにある通常の
localhostには応答しません。 - ファイアウォールまたはウイルス対策ソフトが干渉している — 最近のセキュリティソフトの変更によって、ローカルサーバーまたはそのネットワークバインドがブロックされることがあります。ただし、サービス停止やポート競合よりは一般的ではありません。
修正方法
1. ローカルサーバーとアドレスを確認する
XAMPP Control Panel、Laragon、または MAMP アプリケーションを開き、Apache または Nginx が Running と表示されているか確認します。停止している場合は Start を選択し、起動に失敗した場合は表示された正確なメッセージを記録します。
スタックで使用する HTTP または HTTPS ポートを確認します。カスタムポートを使用している場合は、通常の localhost が正しいと決めつけず、localhost:8080 のように対応するアドレスをテストします。
2. ポート競合を特定する
起動メッセージに、ポートがすでに使用中であることが示されている場合は、該当するポートを確認します。Windows では、環境によっては管理者権限でコマンドプロンプトを開き、次の読み取り専用コマンドを実行します。
netstat -ano | findstr :80
netstat -ano | findstr :443表示されたプロセス ID を使って、タスク マネージャーで所有元を特定します。見慣れないプロセスを終了しないでください。IIS がポートを使用しており、コンピューターを変更する権限がある場合は、IIS が不要なときに限り、該当する IIS サービスを無効化または停止します。それ以外の場合は、ローカルスタックを利用可能なポートに設定し、ブラウザーでもそのポートを使用します。
上記のコマンドは Windows 固有です。別の OS では、組み込みのネットワークまたはプロセス管理ツール、あるいはスタックのコントロールパネルに表示されるポート情報を使用してください。
3. サーバーのエラーログを確認する
設定済みポートを使用している明らかなプロセスがない場合は、ローカルスタックまたは設定済みのログディレクトリから Apache または Nginx のエラーログを開きます。特にファイルパス、設定ディレクティブ、行番号を含む、最初に現れる具体的なエラーを探します。
設定編集後に失敗し始めた場合は、その変更を修正または元に戻します。httpd.conf、Nginx の設定ファイル、バーチャルホスト定義、インクルードされるファイルを確認します。原因を特定できるように、一度に 1 つのファイルだけを変更してください。
4. 重複するローカルサーバーを確認する
2 つ目の XAMPP、Laragon、MAMP、WAMP、単体の Apache、または Nginx のインストールがないか確認します。通常、2 つのサービスが同じアドレスとポートで同時に待ち受けることはできません。不要なサービスを停止する場合は、それが安全であり、権限があることを確認してください。あるいは、使用し続けるスタックに別々のポートを割り当てます。
5. セキュリティソフトの変更を確認する
サーバー設定が有効で、ポートを使用している競合プロセスもない場合は、最近のファイアウォールまたはウイルス対策ソフトの変更を確認します。セキュリティ製品の通常の設定を使用し、許可されるアクセス内容を理解している場合にのみ例外を作成してください。最初のトラブルシューティングとして、保護機能を広範囲に無効化することは避けます。
6. 修正を確認する
Apache または Nginx が Running の状態を維持するまで待ち、その後、設定済みの localhost アドレスを再度開きます。ERR_CONNECTION_REFUSED の代わりに、デフォルトのサーバーページまたはプロジェクトが読み込まれるはずです。
デフォルトページは読み込まれるがプロジェクトが読み込まれない場合、接続の問題は解決しています。ポート設定を再度変更するのではなく、ドキュメントルート、ルーティング、バーチャルホスト、またはアプリケーション固有のトラブルシューティングを続けてください。
予防と修正確認
- 各ローカルスタックが使用する HTTP と HTTPS のポートを記録します。特に複数のスタックをインストールしている場合は重要です。
- 複数のローカルサーバーを同じアドレスとポートで実行しないでください。両方が必要な場合は異なるポートを割り当てます。
- Apache、Nginx、バーチャルホストの設定ファイルに加えた変更を記録しておきます。
- サーバー設定を編集した後は、プロジェクトコードが壊れていると判断する前に、サービスを起動してエラーログを確認します。
- スタックのコントロールパネルで、サービスが一度起動するだけでなく、起動状態を維持していることを確認します。
- プロセスまたはサービスを停止する前に、IIS、別の開発ツール、または無関係なアプリケーションに必要なものではないことを確認します。
外部の助けが必要なタイミング
設定を修正してもサービスが停止し続ける場合、エラーログに解釈できないディレクティブが示される場合、またはポートを使用しているプロセスを安全に停止できない場合は、使用している XAMPP、Laragon、MAMP の関連ドキュメントまたはコミュニティサポートを参照してください。スタック名、OS、設定済みの HTTP/HTTPS ポート、正確な起動メッセージ、関連するエラーログの行を含めます。デフォルトページは読み込まれるのにアプリケーションが失敗する場合は、プロジェクトまたはバーチャルホスト設定について相談してください。このエラーは通常、稼働中のサイトやホスティングプロバイダーの障害ではなく、ローカルマシンの問題です。
よくある質問
localhost に ERR_CONNECTION_REFUSED と表示されるのはなぜですか?
ブラウザーが、待ち受け中のローカル Web サーバーに接続できませんでした。Apache または Nginx が停止している、起動に失敗している、またはブラウザーで使用しているポートとは異なるポートで待ち受けている可能性があります。
ポート競合がエラーの原因かどうかを確認するにはどうすればよいですか?
Apache または Nginx を起動して、起動メッセージを確認します。ポート 80、443、または別の設定済みポートが使用中だと表示された場合は、何かを停止または再設定する前に、所有元のプロセスを特定してください。
別の XAMPP、Laragon、MAMP のインストールがこのエラーの原因になることはありますか?
はい。複数のローカルサーバーのインストールが、同じアドレスとポートを取り合うことがあります。必要なサービスだけを実行するか、変更が安全で権限のある場合に限り、異なるポートを割り当ててください。
Apache が起動してから停止する場合はどうすればよいですか?
サーバーのエラーログを開き、最初に現れる具体的なエラーを探します。設定ファイル名と行番号が示されている場合は設定問題の可能性があり、バインドまたはポートに関するメッセージの場合は競合の可能性があります。
ERR_CONNECTION_REFUSED はプロジェクトコードが壊れているという意味ですか?
通常は違います。このエラーは、ブラウザーがアプリケーションから応答を受信する前に発生します。まずスタックのデフォルトページが読み込まれることを確認し、必要に応じてプロジェクトのドキュメントルート、ルーティング、またはバーチャルホストを調査してください。
ローカルサーバーがポート 8080 を使用している場合はどうすればよいですか?
localhost:8080 のように、設定済みポートを付けた localhost アドレスを開き、サーバー、ブラウザーのアドレス、バーチャルホスト設定で同じポートが指定されていることを確認します。通常の localhost は、デフォルトの HTTP ポートを指します。
関連ドキュメント
スタック固有の手順については、使用しているローカル製品(XAMPP、Laragon、MAMP)の公式ドキュメントを参照してください。特に、Apache/Nginx の起動操作、ポート設定、エラーログの場所を確認します。プロセスの特定、サービス管理、ファイアウォールルール、ポートの確認については、OS の公式ドキュメントを使用してください。マシン固有の情報源として最も役立つのは、コントロールパネルのステータスメッセージとサーバー自身のエラーログです。