ブラウザ
 Computer >> コンピューター >  >> トラブルシューティング >> ブラウザ

Windowsで「ローカルホストが接続を拒否しました」エラーを修正する方法

パソコン上でXAMPPやWAMPなどのWebサーバーを実行している際に、「ローカルホストが接続を拒否しました(Localhost refused to connect)」というエラーメッセージが表示される場合、設定に何らかの問題がある可能性が高いです。原因としては、localhostが127.0.0.1に正しく紐付いていないケースや、ファイルへのアクセス権限が不足しているケースなどが考えられます。localhost(127.0.0.1)は、インターネット上ではなく自分のコンピュータ上で稼働しているWebサーバーのIPアドレスを指すため、インターネットに接続していなくてもアクセスできます。

localhostは、アクセスしようとしているコンピュータ上で動作する任意のWebサーバーに対応します。アプリのテストや改修といった開発作業は、本番サーバーやオンライン環境ではなくローカル環境で行うのが望ましいでしょう。ローカル環境であれば、バグの発見や修正を、本番環境で稼働中のアプリケーションに影響を与えることなく行えます。公開後にダウンタイムやトラブルが発生しないことを事前に確認できるのもメリットです。また、Visual StudioやVisual Studio Codeなどのエディタを使ってAndroidアプリなどを開発する際にも、マシン上のWebサーバーやエディタ付属のWebサーバーパッケージへ接続しようとしたときに、このエラーに遭遇することがあります。

このエラーが発生する理由はさまざまで、正確な原因は根本的な要因によって異なります。そのため、解決方法をご紹介する前に、まずエラーの主な原因を確認して、問題への理解を深めておきましょう。

「ローカルホストが接続を拒否しました」エラーの主な原因

  • localhostが127.0.0.1に正しく対応していない — マシン上のlocalhostが127.0.0.1に正しく紐付いていないケースがあります。この場合、ブラウザでlocalhostと入力しても、コマンドプロンプトからpingを実行しても、ローカルのWebサーバーにアクセスできません。
  • WindowsでWSLを使ってWebサーバーを実行している — Linux用Windowsサブシステム(WSL)内のLinuxディストリビューションでWebサーバーを動かしている場合、WindowsのLxssManagerサービスが原因となることがあります。
  • ポート80が他のアプリケーションによって使用されている — パソコン上のポート80が別のアプリによって占有されていると、このエラーが発生することがあります。かつてのSkypeはポート80を使用していたため、Skypeを起動したままWAMPやXAMPPでApacheサーバーを動かせないという事例がありました。
  • 誤ったポートでWebサーバーにアクセスしている — Webサーバーがデフォルトのポート80以外で設定されているのに、ブラウザで単に「localhost」と入力してアクセスしている場合も、このエラーが表示されます。「localhost」と入力すると、デフォルトではポート80(localhost:80)にアクセスするためです。
  • アクセス権限の不足 — ローカルWebサーバー上のファイルやディレクトリに対し、現在のユーザーがアクセスを許可されていない場合にも、このエラーが発生することがあります。

原因がわかったところで、次にこのエラーを解消し、Web開発をスムーズに進めるための具体的な対処法を見ていきましょう。

対処法1:XAMPPまたはWAMPのApacheポートを変更する

最も一般的な解決策は、WindowsでXAMPPやWAMPを使用している場合に、Apache Webサーバーのポートを変更することです。他のWebアプリケーションがポート80を占有してしまい、Apacheからそのポートにアクセスできなくなっているケースが多くあります。この状態では、Apacheが稼働していても、そのポートでWebページを配信できません。

XAMPPでApacheのポートを変更する手順

  1. まず、スタートメニューからXAMPPを起動します。
  2. タスクバーの通知領域(システムトレイ)にXAMPPアイコンが表示されるので、ダブルクリックします。
  3. XAMPPのコントロールパネルウィンドウが開き、稼働中のサービス(Apache、MySQLなど)の一覧が表示されます。
  4. サービス名の横にある「Stop」ボタンをクリックし、Apacheサービスを停止します。
  5. 次に、エクスプローラーを開いて C:\xampp\apache\conf フォルダに移動し、httpd.conf というファイルを探します。
  6. そのファイルをメモ帳などのお好みのエディタで開き、以下の2行を検索します。
    Listen 80
    ServerName localhost:80
  7. 見つかったら、次のように書き換えます。
    Listen 8080
    ServerName localhost:8080
  8. ファイルを保存します。保存時に管理者権限を求められたら、ダイアログで「はい(Yes)」をクリックします。
  9. 再度XAMPPコントロールパネルを開き、Apache Webサーバーを起動します。
  10. エラーの原因がポート番号の競合だった場合、これで解決するはずです。

WAMPでApacheのポート番号を変更する手順

WAMPでApacheのポート番号を変更するには、まずWAMPを終了する必要があります。

  1. タスクバーを右クリックし、表示されたメニューから「タスクマネージャー(Task Manager)」を選択します。
  2. タスクマネージャーが開いたら、WAMPのプロセスが実行中かどうかを確認します。実行中の場合は、「タスクの終了(End Task)」ボタンをクリックして停止してください。
  3. デスクトップの「PC(マイコンピュータ)」アイコンをダブルクリックしてエクスプローラーを開き、C:\wamp\Apache2\conf フォルダに移動します。そこにある httpd.conf ファイルをメモ帳などのエディタで開きます。
  4. ファイル内で以下の2行を検索します。
    Listen 80
    ServerName localhost:80
  5. 該当箇所を見つけたら、次のように書き換えます。
    Listen 8080
    ServerName localhost:8080
  6. 以上で完了です。ファイルを保存し、WAMPを再度起動して、エラーが解消されたかどうかを確認してください。

対処法2:127.0.0.1でlocalhostにアクセスする

前述のとおり、このエラーメッセージが表示される原因の一つは、localhostが127.0.0.1(ローカルWebサーバーのアドレス)に正しく対応していないことです。

この問題を解決するには、XAMPPやWAMPを起動してWebサーバーを立ち上げた後、ブラウザで 127.0.0.1 と入力して Enter キーを押します。これでWebサーバーにアクセスできれば、localhostがこのIPアドレスを指していないことがわかります。その場合は、以降「localhost/ファイル名」の代わりに「127.0.0.1/ファイル名」と入力して、Webサーバー上のプロジェクトやファイルにアクセスしてください。

対処法3:LxssManagerサービスを再起動する(WSLでWebサーバーを運用している場合)

Node.jsアプリ開発などでLinux用Windowsサブシステム(WSL)上にWebサーバーを構築していて、このエラーに直面している場合は、LxssManagerサービスを再起動するのが最も簡単な解決策です。以下の手順に従ってください。

  1. まず、キーボードの Windowsキー + R ショートカットで「ファイル名を指定して実行」ダイアログを開きます。
  2. ダイアログが開いたら、「services.msc」と入力して Enter キーを押します。
  3. Windowsのサービス管理ツールが開き、コンピュータで利用可能なすべてのサービス一覧が表示されます。
  4. サービス一覧の中から「LxssManager」というサービスを探します。
  5. 右クリックしてドロップダウンメニューから「再起動(Restart)」を選択します。あるいは、ダブルクリックして「プロパティ」ウィンドウを開き、一度停止させてから「開始」をクリックして再起動することもできます。
  6. 完了したら、Webサーバーに再度アクセスしてみてください。原因がLxssManagerサービスの不具合だった場合には、これで正常に動作するようになるはずです。

対処法4:ポート番号を指定してlocalhostにアクセスする

もう一つの解決策として、Webサーバーがデフォルトのポート 80 以外で稼働している場合は、ポート番号を明示的に指定してアクセスできます。通常、ポート番号は80または8080です。

その場合、ブラウザで「localhost:8080」と入力してください。なお、「localhost:80」と入力する必要はありません。80はブラウザがWebサイトやWebサーバー(オンライン・オフライン問わず)にアクセスする際に使用するデフォルトのポートだからです。

対処法5:application.configファイルを削除する(Visual Studio利用時)

Visual StudioでASP.NETのプログラミングを行っていてこのエラーが発生している場合も、心配いりません。解決策があります。.vs フォルダの中にある application.config ファイルを削除してください。このフォルダは隠しフォルダになっている場合があるため、エクスプローラーで隠しファイルが表示されるように設定しておく必要があります。以下の手順に従ってください。

  1. まず、プロジェクトフォルダを開き、その中にある「.vs」フォルダを開きます。このフォルダが見えない場合は隠しフォルダになっているため、エクスプローラーのフォルダーオプションで「隠しファイルと隠しフォルダを表示する」設定を有効にする必要があります。
  2. .vs」フォルダに入ったら、「config」フォルダを開きます。
  3. configフォルダ内にある「application.config」ファイルを削除します。
  4. 以上で完了です。IIS Expressを使用してASP.NETプロジェクトを開発していた場合、これでVisual Studioがlocalhostに接続できない問題は解決するはずです。
  1. Windows 10でエラー651を修正する方法|原因と7つの対処法を徹底解説

    Windowsには数多くのエラーコードが存在し、システム内のさまざまな場所で同時に発生することがあります。さらに、各コードに関する情報は必ずしも具体的とは限らず、詳細な分析と調査が必要です。その中でも、インターネット接続のエラーはWindowsユーザーが最も頻繁に遭遇する問題の一つです。今回は「エラー651」について詳しく解説します。「エラー651:モデムがエラーを報告しました」というメッセージは、ブロードバンド機器がインターネットに接続できない際に表示される、Windowsユーザーにとって非常によくあるトラブルです。しかし、解決策に飛びつく前に、まずこのエラーの原因を理解しておくことが重要で

  2. Windowsエラー1603の原因と解決方法を徹底解説

    Windowsエラー1603は、ソフトウェアのインストールがシステム上で正しく実行できない場合に発生するエラーです。PCの設定や環境に起因するさまざまな問題がインストール処理を妨げている可能性があり、これらの問題を早期に解消することが重要です。この記事では、エラー1603を引き起こす主な原因と、誰でも実践できる具体的な解決手順をわかりやすく解説します。 Windowsエラー1603の原因は? Windowsエラー1603は、以下のような形式のメッセージとして表示されます。 「Error 1603: A fatal error occurred during installation(エラー1