Windows 7 サービスパック適用後に Apache が起動しない場合の対処法

私の Windows 7 にサービスパック 1 をインストールしたら Apache が自動起動しなくなりました

同じような現象にあう人もいるかもしれませんので、ここにその解決方法について書いておきます。 再現性を確かめていないので、必ずしも SP1 の不具合ではないのかもしれませんが・・・、印象としては不具合のように思われました。

さて、どんな状況で何が起きたか、そしてどうしたら解決できたか。

発生した問題 - Apache が起動しない

Windows 7 Service Pack 1 をインストールして再起動した直後、普段は自動起動していた Apache が起動しなくなりました。 Apache Service Monitor から Apache の起動を試みても起動せず・・・。

問題が起きた環境

不具合がおきたのは 2007年の秋に購入した HP のラップトップで、それに Windows 7 (32-bit) 英語版をインストールしています。

UAC (User Account Control) の設定は、(非推奨の(笑)) "Never notify" (一番下のレベル)にしていました。

Apache はバージョン 2.2。サービスの設定で自動起動にしています。サービスアカウントは Local System です。

解決方法

コマンドラインからサービスを起動しようとしたところ、エラーコード 5 (Access Denied) が発生しました。 UAC を OFF にしていのにおかしいな、と思い UAC の設定を見ると設定ツマミは一番下になっていました。

UAC の設定

この状態で OK を押して再起動したところ、普段通り Apache が起動してきました。 Apache Service Monitor やコマンドラインからも「アクセスが拒否されました」というメッセージもでることなく、サービスを起動、停止することができます。

以上から、どうも Windows SP1 適用直後は UAC が設定に関わらず有効(おそらくデフォルトじゃないかと予想しますが)になっていたようです。 これが再現性のあることかどうかまだラップトップ1台でしか確認していないのでわかりませんが、他にも同様の現象が起きたら UAC の設定を確認されるとよいかもしれません。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説