I'm using Apache 2.2.11 on Windows Server 2003.

Apache is failing to start as its attempt to start rotatelogs fails. I
cannot figure out what the problem is.

Every time httpd starts up, these two message are placed sequentially in
error.log:

1) unable to start piped log program ' "C:/Program
Files/foo/apache/bin/rotatelogs.exe" "C:/Program
Files/foo/logs/httpd/access.%Y_%m_%d_%H_%M_%S.log" 86400': Access is
denied.
2) Unable to open logs

("foo" is a service that Apache is installed under and uses Apache.)

"Access is denied" is a Windows permission error message.

These are various things I've confirmed/tried:

1) The foo service runs.
2) The user that the foo service runs as can start rotatelogs.exe from the
command line.
3) rotatelogs.exe has full execute permissions for all users.
4) The logging-to directory exists and has write permissions for all users.
5) There are no security programs involved.
6) Getting the events while running procman indicates that rotatelogs.exe is
not accessed in anyway by httpd.
7) This works fine on other machines (running XP).

I've looked in the source code:
- The "Unable to open logs" is from server/main.c:main().
- The "unable to start piped log program" is from
server/log.c:piped_log_spawn(), and the access denied is coming from when
srclib/apr/threadproc/win32/proc.c:apr_proc_create() calls the Windows
function CreateProcess(). As rotatelogs is not found in the events captured
by procman, it seems that CreateProcess() wasn't able to start rotatelogs.

This appears to be some weird permissions issue. But since httpd can start,
I can't figure out why it can't start rotatelogs.

Any help would be much appreciated.

Reply via email to