X-SendFile на Apache2 (PHP), обслуживающем файл 0B, но без ошибок

Я установил mod_xsendfile, и, похоже, все прошло успешно; xsendfile.load появляется в / etc / apache2 / mods-enabled, и я не обнаружил ошибок при запуске моего тестового скрипта. Однако каждый раз, когда я запускаю его, я получаю файл 0B.

Вот мой тестовый сценарий:

$file = 'sample.mp4';
$path = '/var/storage/media/'.$file;
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header("Content-type: application/octet-stream");
header("X-Sendfile: $path");

Очевидно, у меня есть файл, хранящийся в /var/storage/media/sample.mp4, его размер всего 25 МБ, и он отлично работает, если я сделаю это так:

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($path));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
ob_clean();
flush();
readfile($path);
exit;

У меня также есть это в файле .htaccess как в / var / storage, так и в / var / www (файлы, в которых есть все это, хранятся в / var / www / files / index.php):

XSendFile on
XSendFileAllowAbove on

Как я уже сказал, у меня нет ошибок, и PHP может получить доступ к файлу, но мне должно быть что-то не хватает в конфигурации x-sendfile ... это напоминает мне, я замечаю в модах: enabled практически у каждого мода есть .load и .conf, но у xsendfile есть только .load, как и у некоторых других, так что это имеет какое-то отношение к этому?

Спасибо.

5
задан Doug Wollison 20 August 2011 в 18:35
поделиться