Windows版Apacheのエラー「Unable to open logs」の原因の1つと解決方法
Apacheのhttpd.confの記述に問題がないはずであるのに、Apacheが起動できない時がある。
httpd.confに問題がない場合は、Apacheの設定が間違っているのではなく、別の問題でApacheが起動できない可能性がある。
例えば、Windowsのイベントログのアプリケーションログに、以下のエラーが記載されいてる場合。
The Apache service named reported the following error:
>>> Unable to open logs
このエラーメッセージを最初に見た時、
「Unable to open logsというのは、Apacheのログを開くことができない、ってことかな。ということは、Apacheのログファイルを保存しているフォルダの中身をApacheのプログラムからは参照できない権限設定になっているのかなぁ。ログなんだから、参照権限だけではダメで、書き込みもできないといけないよなぁ。何をどう設定したらよいのだろう…。よし、とりあえず、ログフォルダの権限をEveryoneユーザでフルコントロールにしてみよう。あれ、でも、Apacheの設定でログフォルダの権限設定など一度もやったことがないけど、何故、今回は必要なんだろう???」
…と思って、そうやってみたのだが、全く解決しない。
ふと、コマンドプロンプトを開き、netstatを見てみると、何故か80番ポートが使用中。
今、Apacheを設定しようとしているOSは、Windows Server 2003ということを思い出し、大事なことを思い出した。Windows Server 2003で80番ポートを使用するサービス…それは、IISだ。
Windowsの「サービス」を開き、「World Wide Web Publishing Service」(IIS)の項目を見てみると、「開始」になっていた。これを「停止」すると、あっさりApacheの起動に成功。
何故、停止していたIISが起動してしまったのかは、別次元の問題で考えないといけないのだが、それよりも、Apacheのエラーメッセージ「Unable to open logs」に惑わされて、ログフォルダの権限設定などをしてしまったのが悔しい。普段、ログフォルダの権限設定などしないのだから、そこに問題がある可能性は低い、ということをさっさと見切って、別の原因にすぐに気づくことができるレベルに到達しなくては…。