apache x-sendfile не может найти файл

Есть много других вопросов, касающихся x-sendfile, которые не возвращают файлы, но ни один из них, похоже, не может решить мою проблему.

Я обслуживаю изображения из каталога за пределами общедоступного корня сайта и хочу, чтобы эти изображения доставлялись пользователю с минимальными накладными расходами, поэтому я хочу избегать их обработки с помощью readfile (). Поэтому я пытаюсь использовать x-sendfile.

Моя среда разработки состоит из установки XAMPP (apache и php) на 64-битных окнах. Я использую двоичный файл 64-битных окон из mod_xsendfile.so, который, кажется, загружается правильно в соответствии с phpinfo ().

Я думал, что это может быть проблема, связанная с чувствительностью к регистру или обратной косой чертой / прямой перемоткой, но, похоже, это не так.

Файл существует, если я скопирую путь из журнала ошибок и вставлю его в окно проводника, которое загружает изображение. Также я использовал file_exists и filesize для проверки пути в php.

Настройка httpd.conf:

LoadModule xsendfile_module modules/mod_xsendfile.so
XSendFile On
XSendFilePath "c:/images-store/"

Код PHP

header('Content-Type: image/jpeg');
header('X-Sendfile: c:/image-store/5cca6ef24ae46c4346c24846ee3e5521213562ef-thumb.jpg');

Запись в журнале ошибок

[pid 3208:tid 1900] (20023)The given path was above the root path: [client 127.0.0.1:57477] xsendfile: unable to find file: c:/image-store/5cca6ef24ae46c4346c24846ee3e5521213562ef-thumb.jpg

Любое понимание того, как я могу получить эти файлы, было бы здорово.

0

Решение

Оказывается, это была чувствительность к регистру. C в пути должен быть заглавной C.

XSendFilePath C:/images-store/

Я, вероятно, должен вернуться к Linux для моего развития …

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]