xampp 1.7.3でapacheが起動しない→webmatrixと競合していた

スポンサーリンク

久々にxamppでapacheを起動しようとしたら、STARTボタンをおすと一瞬起動するがすぐに終了するのでその時のメモ。
xamppはc:\xamppにインストールしてます。

・原因さがし
起動で失敗しているようなので、エラーログを見たい。が、場所がよくわからない(´・ω・`)
C:\xampp\apache\conf\httpd.confを見ると259行目あたりで

ErrorLog "logs/error.log"

と指定されている。これとxamppをインストールしたパスを組み合わせて、ログファイルを保管しているみたい。
c:\xampp + logs/error.log →c:\xampp\logs\error.log
を見るとエラーログがあったのでチェック。すると以下のメッセージが出ていた

(OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。  : make_sock: could not bind to address [::]:80

このエラーメッセージで検索すると
とある海産物の電子工房 XAMPPのApacheが起動しない件さんのページがあり、コマンドプロンプトから「netstat -ano」を実行。すると

> netstat -ano
(中略)
TCP    [::]:80                [::]:0                 LISTENING       4

と、何かが80番ポートを使っている。さらに調べると

> tasklist /svc /fi "PID eq 4"

イメージ名                     PID サービス
========================= ======== ============================================
System                           4 N/A

…N/Aって、サービス名出せよWindows

xamppのapacheより早く80番ポートを使う、というとskypeあたりが多いけど最近いれてapacheと競合しそうなのはMicrosoft WebMatrix。80番ポート、Systemがつかんでるようです。

msconfigでスタートアップとサービス見ても、どれがwebmatrixで使っているものかはっきりしない。ということで、webmatrixをアンインストールして再起動。

webmatrixをアンインストールしてもダメ。さらに検索すると
[MEMO] XAMPP for Windows インストール済みの環境に WebMatrix を共存させる時の注意事項 – WebMatrix の歩き方 by 武田正樹 – Site Home – MSDN Blogs
「Web Deployment Agent Service」のサービスを停止します」と。msconfigでサービスを見ると、起動時にこのサービスが起動している。タスクマネージャ→サービスを見ても存在しなかったような。msconfigで「Web Deployment Agent Service」を起動時に起動しないようにして、再起動。するとxamppが復活しました、よかったー

というか、webmatrixをアンインストールしたら関連するサービスも停止してくれmicrosoft。80番ポートをつかんだままにしないで欲しい。アンインストールしてもサービスが居座り、他の競合アプリ(xampp)を妨害するって極めて悪い、利用者の意図しない動作だと思うんだけど。

以下のブログを参考にしました。設定ファイルの確認と修正 – Apacheの設定と利用 – XAMPPの使い方