ポート番号の確認と使用中かどうかのチェック

広告

アプリケーションを実際に起動する前にアプリケーションが使用するポート番号が既に使われていないかどうかを確認します。特にApacheでデフォルトで使用するポート場号80番を既に他のアプリケーションが使ってしまっていないか確認したい場合に参照されてみて下さい。

※ポート番号とは簡単に言うとWWWサーバなどのサーバ型のアプリケーションがクライアントとの通信のやり取りを行う上で使用する通信路の番号です。アプリケーション毎に使用するポート番号が設定されていますが、他のアプリケーションが同じポート番号を使っていると通信が行えません。

XAMPPでインストールされたアプリケーションがデフォルトで使用するポート番号は次の通りです。

Service       ポート番号
-----------------------------
Apache        80, 443
MySQL         3306
FileZilla     21, 14147
Tomacat       8080

これらのポート番号が既に使用されているかどうか確認するには、「(XAMPPをインストールしたディレクトリ)\install\portcheck.bat」を使用します。

p1-1

コマンドプロンプトを起動し先ほどのディレクトリに移動してから「portcheck.bat」を実行して下さい。すると「Fatal error: Uncaught Error: Call to undefined function ereg_replace() 」というエラーが表示されました。

p1-2

今回PHP7を使用していますがereg_replace関数はPHP7では削除されており使用できないためです。代わりにpreg_replace関数を使います。バッチファイルと同じディレクトリにある「(XAMPPをインストールしたディレクトリ)\install\portcheck.php」ファイルをテキストエディタで開いて下さい。

p1-3

13行目に次のような行がありますので、「ereg_replace」を「preg_replace」に変更して下さい。

[修正前]
$port = ereg_replace('-', '', $argv[1]);

[修正後]
$port = preg_replace('/-/', '', $argv[1]);

ファイルを保存したら改めてコマンドプロンプトから「portcheck.bat」を実行して下さい。

p1-4

チェックが終わると先ほどのディレクトリ内に「portcheck.ini」というファイルが作成されます。

p1-5

「portcheck.ini」ファイルはテキストファイルですのでテキストエディタなどで開いてみて下さい。次のように各ポート番号の値が全て「FREE」になっていればアプリケーションが使用するポート番号が現在使われておらず問題が無いことを表しています。

[Ports]
Port80=FREE
Port443=FREE
Port3306=FREE
Port21=FREE
Port14147=FREE
Port8080=FREE

一番可能性があるのは他のウェブサーバーが既に起動しており、そのアプリケーションがポート番号80番を使用している場合です。その場合は既にそのポート番号を使っているアプリケーションの設定を変更するか、またはXAMPPでインストールしたアプリケーションのポート番号に関する設定を変更する必要があります。

XAMPPでインストールしたアプリケーションの設定を変更する方法は別のページで解説します。

( Written by Tatsuo Ikura )