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はセキュリティを重要視しているのか、無頓着なのか、わからなくなるのですよねぇ。