XAMPPが起動しないので【解決】

ASP.NET、サーブレット/JSPを学習した。PHPも習得しておきたいと考えている。以前学習したのだが、まだ身についていない。PHP学習途中でWordPressでのWeb構築へ移行したため、PHPについては中途半端に終わっている。以前インストールしたXAMPPを利用して学習し直し・・・と思っていたが、肝腎のXAMPPが起動しない!!

 調査

なぜ、XAMPPが起動しないのだろう?今年の5月頃まではサクサクと動いていたのに。

それ以降、インストールしたアプリケーションは?と考えた。

  • サーブレット/JSPを作成するためにTomcat
  • ASP.NETを利用するためにIISの設定

ポートのバッティングが考えられる。まずは、調査。

XAMPPはポート80を利用している。

ポートバッティング対象のアプリケーションの削除もしくはポート変更を目的として、ポート80使用状況を確認した。

コマンドプロンプトで調査

スタートボタンから「すべてのプログラム」→アクセサリ→コマンドプロンプトをクリック

C:\windows\system32>netstat -oan

と入力してエンターキーを押す。

プロトコル   ローカルアドレス    外部アドレス    状態     PID
 TCP   0.0.0.0:80    0.0.0.0:0   LISTENING      4
 TCP   0.0.0.0:135    0.0.0.0:0   LISTENING    856

このような表示が出た。

状態でLISTENINGとは「聞く」という英語なのだが、待ち受け状態と解釈しても良いだろう。
このほか「ESTABLISHED」は、使っているという意味らしい。ほかに「CLOSE_WAIT」「 TIME_WAIT」という状態があるようだ。

PIDは、OSを利用しているプロセス(アプリケーション)を識別する番号。
PIDの番号を調べるとポート80を使っているアプリケーションがわかる。

PIDを調べる

キーボードの「CTRL」+「ALT」+「DEL」キーは以前のOSでは、強制終了をするための操作だ。

Windows7では、この操作でいくつかの特別な操作ができる。

タスクマネージャの起動も「CTRL」+「ALT」+「DEL」でメニューが出てくる。

タスクマネージャを起動する。PIDを表示するために「表示(V)」から「列の選択(S)」をえらぶ。

PIDプロセス名にチェックを入れる。

PIDの番号から、ポート80を使用しているプロセスを探した。

判断する

バッティングしているプロセスは、どうやら「System」。

XAMPPが起動しないとわかったときに、一番疑った「Tomcat」とのバッティングは、どうやら関係ないらしい。

ASP.Net作成のためにIISを設定した。たぶん、IISの起動設定をしたときにポート80が割り当てられたのだろう。

そこで、XAMPPのポート番号を変更することにした。

XAMPPのポート番号変更

ポート番号変更は、2つのConfigファイルを修正する。

一つは「httpd.conf」

修正箇所は2箇所。

ファイルの場所 \xampp\apache\conf\httpd.conf
修正前 修正後
(45行目)
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80
(45行目)
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 88
(184行目)
#ServerName localhost:80
ServerName localhost:80
(184行目)
#ServerName localhost:80
ServerName localhost:88

もう一つは「httpd-ssl.conf」

ファイルの場所 \xampp\apache\conf\extra\httpd-ssl.conf
修正前 修正後
(39行目)
#Listen 0.0.0.0:443
#Listen [::]:443
Listen 443
(39行目)
#Listen 0.0.0.0:443
#Listen [::]:443
Listen 448
 起動してみる

わくわく、どきどきしながらXAMPPを起動してみる。