I was a little concerned with the web service on my new Intel Xserve running Mac OS X Server 10.5 (Leopard) when I started seeing the following log entry in my Apache error log:
[crit] (2)No such file or directory: mod_rewrite: could not init rewrite log lock in child
I wasn't so much concerned that there was a critical error. I could see my Apache 2 based Subversion server (DAV svn) was performing just fine. My larger concern was that there was an error about
mod_rewrite when I wasn't the one that turned it on in the first place. You see, I could believe it was my human error that might have caused the problem but I'd have a harder time believing it was a problem with the default install.
So, I looked at my config file:
/etc/apache2/sites/0000_any_80_.conf and compared it to the default config file:
/etc/apache2/sites/0000_any_80_.conf.default and found the
<IfModule mod_rewrite.c> containers to be exactly the same. Annoying.
Iquickly gave up trying to point the finger and lay blame and decided to take the initiative to fix the problem. I fixed it by giving mod_rewrite an actual log to write to (make it happy - if for only a moment) and then told it to not to log anything to the file (mwahahaha). The change was simple.
From this:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
</IfModule>
To this:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
RewriteLog /var/log/apache2/rewrite.log
RewriteLogLevel 0
</IfModule>
Problem solved it seems. Now why did
I have to do this!?