【Windows】Apacheを使いたいのにポート80がすでに開いている。どうしたら?

9月も下旬に突入しようとしていますが、夜はまだまだ蒸し暑いですねぇ。

仕事の関係で、手持ちのWindowsマシンにXAMPPを入れて、ApacheによるWebサーバを立てる必要に迫られました。XAMPPの入手やインストールそのものはカンタンなのですが、好事魔多し、ひょんなところで躓くものです。

私の場合は、ポート80(HTTP)とポート443(HTTPS)が両方とも開いているよ、というものでした。

こういうときにすべきことは定型化されていて、まずはコマンドプロンプトを開いてnetstat -o -aとして、ポート80とポート443を使っているプロセスのIDを調べます。こんな感じで出てきます。

TCP    0.0.0.0:80             :0                     LISTENING         4

私の場合は、IDが4であるプロセスが使っているようでした。う〜ん、やけに若いプロセスIDだなぁ、と思いながら、今度はtasklistでプロセスIDが4であるプロセス名をチェックします。

System                           4 Services                   0      1,600 K

あらら、Systemが使っているのですか。さすがにこのプロセスは止められないので、Systemすなわちカーネルにポート80を使わせているサービスを突き止めて、それを止めてあげればよさそうです。

で、ちょっと調べてみましたら、こんなところが怪しそうです。

  • IIS(Internet Information Services)
  • SQL Server Reporting Services
  • Windows Remote Management
  • Web Deployment Agent Service

IISは残念ながらインストールもされていません。SQL Server Reporting Servicesはインストールされていますが(SQL Serverを入れると自動的に登録される)手動になっており、起動していません。Windows Remote Management(WinRM)も手動でした。

とすると残りはWeb Deployment Agent Serviceですが、これがばっちり起動していましたね。開発系で、Webコンテンツのデプロイに使うサービスですが、とりあえず無用なので、サービスを停止し、起動も手動にしました。

これで改めてnetstat -o -aで見ると、ポート80とポート443はすっかり消え失せていました。やったね!無事Apacheも起動することができました。

しかしまぁ、知らないところでポート80とポート443という超メジャーポートが空いているなんて、気分のいいものではないですね。ファイアウォールでブロックされている、ローカルからアクセスするので十分安全、と言ってしまえばそれまでですが。

しかもパフォーマンス重視なのか、カーネルプロセスに監視させている始末です。こういうのがあると、MSはセキュリティを重要視しているのか、無頓着なのか、わからなくなるのですよねぇ。

コメント

  1. […] いる。どうしたら? 2012/9/20 http://blog.naosan.jp/2012/09/2697/ (引用ここから) ———- […]

  2. […] listening sockets availableと言われる解決方法 ②の方法 【Windows】Apacheを使いたいのにポート80がすでに開いている。どうしたら? Windows10 にアップデートして XAMPPのApache […]