У меня была такая же проблема, и я смог ее решить, поэтому, возможно, это решение подойдет вам.
Первое, что нужно сделать, - проверить журналы ошибок Apache (для меня они находятся в / etc / httpd / logs). Вот что я нашел у себя:
[Wed Sep 05 14:29:02 2012] [error] [client ?.?.?.?] (20023)The given path was above the root path: xsendfile: unable to find file: /path/to/file
Проблема была в том, что файл, который я искал, находился над DocumentRoot (для меня / var / www / html), как определено в httpd.conf.
Мое решение состояло в том, чтобы создать символическую ссылку в каталоге DocumentRoot, которая указывала бы на каталог, который содержал файл, который я хочу обслуживать. Я использовал следующую команду:
ln -s /path/to/file_dir /path/to/doc_root/file_dir
Тогда все, что мне нужно было сделать - это указать PHP-ссылку xSendFile на символическую ссылку:
header("X-SendFile: /path/to/doc_root/file_dir/file_name.ext");