Apache HTTP Server Version 2.2
Apache uses the sendfile
syscall on platforms
where it is available in order to speed sending of responses.
Unfortunately, on some systems, Apache will detect the presence of
sendfile
at compile-time, even when it does not work
properly. This happens most frequently when using network or
other non-standard file-system.
Symptoms of this problem include the above message in the error
log and zero-length responses to non-zero-sized files. The
problem generally occurs only for static files, since dynamic
content usually does not make use of sendfile
.
To fix this problem, simply use the EnableSendfile
directive to disable
sendfile
for all or part of your server. Also see
the EnableMMAP
, which can
help with similar problems.
If you get error messages related to the AcceptEx
syscall
on win32, see the Win32DisableAcceptEx
directive.
Most problems with CGI scripts result in this message written in the
error log together with an Internal Server Error
delivered
to the browser. A guide to helping debug this type of problem is
available in the CGI
tutorial.
A Permission denied
error in the
error_log
, accompanied by a Forbidden
message to the client usually indicates a problem with your
filesystem permissions, rather than a problem in the Apache HTTP
Server configuration files. Check to make sure that the
User
and Group
running the child processes
has adequate permission to access the files in question. Also
check that the directory and all parent directories are at least
searchable for that user and group (i.e., chmod
+x
).
Recent releases of Fedora Core and other Linux distributions
using SELinux have additional access restrictions beyond those
used by the basic filesystem. Violations of these restrictions
will also result in a Permission denied
message. See
the Fedora
SELinux FAQ and Apache
SELinux Policy Document.