Windows環境でApacheが起動しなくなった
問題
突然、Windows環境のApacheが起動しなくなりました。
サービスで起動しようとしているのですが、イベントログに以下のエラーがありました。
Apache2.2 サービスは、サービス固有エラー ファンクションが間違っています。 で終了しました。
答え
他のソフトに80番ポートを先に使われている可能性がある。
80番ポートを使っているプロセスを確認すると、以下のように出てくれば、何かが起動して80番ポートをLISTENしていると見られる。管理者権限がなかったら、コマンドは netstat -ano
でもよい。
>netstat -anob アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 所有者情報を取得できません (略) TCP [::]:80 [::]:0 LISTENING 4 所有者情報を取得できません (略)
ついでに、この状況であれば、telnetで80番ポートに話しかけてみると、何か返ってくるでしょう。
>telnet localhost 80
(レスポンスがあるかどうか確認したいだけなので、aaa など適当に入力して、Enter、Enter 入力)
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 21 Dec 2015 02:57:01 GMT
Connection: close
Content-Length: 326
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Verb</h2>
<hr><p>HTTP Error 400. The request verb is invalid.</p>
</BODY></HTML>
なんだか Microsoft の仕業っぽいレスポンスです。
その線で調べていくと、IISを有効化したつもりはなくても、Windows10にアップグレードしたら有効化されていたり、WebMatrix など何かと一緒に有効化されて稼働していることがあるらしいです。
IIS(インターネットインフォメーションサービス)っぽいということまで分かれば、あとは、サービスを停止するなりWindowsの機能の有効化で無効にしたり、IIS管理マネージャーもインストールして停止するなどの対応となります。
80番ポートを使っている他のソフトがなくなれば、80番ポートを使うApacheが起動できます。
コメント