目次
1.はじめに
2.localhostって?
3.ポート番号って?
4.なぜ「localhostで接続が拒否されました。」が発生するのか?
5.おわりに
参考記事
1.はじめに
単体開発環境で実行した際に一度はこのようなエラーを見たことはありませんか?
今回、私はPHPの勉強をするために、EclipseとXAMPPをインストールし、
ポートの競合と、正しいポート番号が指定されていないことによるエラーが発生したため、改めてlocalhostとは何か?ポート番号とは何か?について学びなおし記事にすることにしました。
エラー発生時の原因をおさらい
-
XAMPPインストール時のポート番号の競合によるエラー
Xamppをインストールしたデフォルトの状態で、
ApatchとMySQLを起動させた際にポート番号が競合が発生。
こちらの手順で、
下記の通りポート番号を変更したことにより解消されました。
-
正しいポート番号が指定されていないことによるエラー
EclipseでPHPファイルを実行した際に、
ブラウザ上で「localhostで接続が拒否されました。」が表示。
原因はEclipseのサーバーの設定がデフォルトのままになっており、
正しいポート番号が指定されていなかったことでした。
正しいURL
http://localhost:8888/TestPHP/sample.php
誤ったURL(Eclipse実行時のデフォルトの状態)
http://localhost/TestPHP/sample.php
参考までに、Eclipseのサーバの設定は下記の手順から確認できます。
「ウィンドウズ」>「設定」>「PHP」>「コード・スタイル」>「サーバ」を選択 > サーバを指定し「編集」
2.localhostって?
localhostとは、URLの接続先として、
自分自身のPCを指定する際のアドレス(IPアドレス)のことです。
主に、GoogleやEdge、IEなどのブラウザから、自分のPC上に構築したWebサーバーへアクセスする時などに使用します。
例えば、「http://localhost:80/...」や「http://localhost:8080/...」などです。
3.ポート番号って?
ポート番号とは、localhost:XXXXの末尾にある番号「XXXX」を指します。
ポートはよく「扉(ドア)」に例えられ、イメージとしては下記です。
ポート番号は、16ビットの整数で0番~65535番まで存在し、
"XXX番は××のデータ用"、"○○○番は決められた範囲内で自由に使ってOK”というように、ドメイン名やIPアドレスなどのインターネット資源を管理する機能であるIANA(Internet Assigned Numbers Authority)によって管理されています。
IANAによるポート番号の管理
種類 | 番号の範囲 | IANAでの登録可否・用途 |
---|---|---|
ウェルノウンポート | 0~1023 |
IANAで正式に登録されている ・TCP/IPやUDPで使用されるポートのうち、各プロトコルやサービスが利用するために予約されている ・サービスごとに設定ファイルを編集し、待受のポート番号を変更することも可能 |
レジスタードポート | 1024~49151 |
IANAで正式に登録されている ・特定のアプリケーションなどで使用することになっている |
ダイナミックポート | 49152 ~ 65535 |
IANAで正式に登録されていない ・ユーザの任意で自由に扱える |
代表的なポートの例 ※IANAの最新情報 こちら
ポート番号 | プロトコル | サービス | 説明 |
---|---|---|---|
20 | TCP | FTP | ファイルデータを転送する仕組み |
21 | TCP/UDP | FTP | 通信を制御する仕組み |
22 | TCP | ssh | 他のコンピュータを遠隔操作するための仕組み (通信途中の情報は全部暗号化する) |
23 | TCP | talent | 他のコンピュータを遠隔操作するための仕組み (通信途中の情報は全部暗号化しない) |
53 | TCP | DNS | IPアドレスとドメイン名の紐付けする仕組み |
80 | TCP | HTTP | インターネット通信 |
110 | TCP | POP3 | 電子メール(受信) |
143 | TCP | IMAP | 電子メール(受信) |
443 | TCP | HTTPS | SSL(暗号化通信)によるHTTP接続 |
4.なぜ「localhostで接続が拒否されました。」が発生するのか?
ほとんどの原因は下記の4つが考えられるそうです。
1. Webサーバーが起動していない
2. 正しいポート番号が指定されていない
3. ファイアウォールで接続拒否されている
4. セキュリティソフトで接続が拒否されている
確認手順はこちらのサイトに詳しく記載されていました。
5.おわりに
今回のエラーから、
・localhostとは?ポート番号とは?
・プロキシの設定方法について
・ファイヤーウォールの確認の仕方
・Googleの拡張機能の影響
など様々なこ学ぶことができました。
今後は、ポート番号の競合を防ぐために、使用したポート番号は管理していこうと思います。
参考記事(ありがとうございました)