久々にWindowsでApacheを起動してみたらエラーが。
httpd.exeを直接起動してエラーメッセージを確認してみた。
(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、 またはポートのどれか 1 つのみを使用できます。 make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs
ググってみたら、他のプログラムによってすでに80番ポートが使われている場合に起こるエラーらしい。IISが立ち上がっている場合が多いらしいが、IISは起動していない。
80番ポートを使用しているプログラムの特定
任意ポートを使用しているプログラムは、WindowsXPでは次のようにして調べることが出来る。
netstat -oan
これで、ポートを開いているプロセスの一覧が表示される。(-oはPIDの表示、-aは全ての接続を表示、-nはアドレス・ポートを数値で表示)
ここで、80番を使用しているプロセスのPIDを覚えておき、タスクマネージャでそのPIDに対応するプログラム名を調べる。
タスクマネージャのプロセスタブでPIDを出すには、「表示 > 列の選択」でPIDをチェック。PID順にソートすると見つけやすくなる。
今回の場合、80番ポートを使用しているのはなんとSkypeだった。Skypeを起動している間は、デフォルトでは80番ポートが使われるようだ。80番を使うのはFirewall回避のためであろう。
Skypeで80番ポート以外を使用するようにする
ツール > 設定 > 詳細 > 接続
を開き、「上記ポートに代わり、ポート80を使用」のチェックを外すことで、ランダムなポート番号が使われるようになる。
環境によっては通話できなくなる可能性があるので注意。