Задать вопрос

XSendFile для Apache: как работать с файлами из внешней директории?

Всем доброе утро!

Прочитал статью на Хабре об отдаче файлов с сервера и решил попробовать третий способ из статьи - отдача файлов через модуль XSendFile для Apache.
Система Windows Server 2003, Apache 2.2, PHP 5.3.13

Что сделал:
1. Скачал модуль с сайта, распаковал и закачал файл mod_xsendfile.so в apache/modules
2. Прописал в httpd.conf строчку
LoadModule xsendfile_module modules/mod_xsendfile.so

3. Прописал в .htaccess директории со скриптом, который отдаёт файлы, директиву XSendFile On

Что получилось: всё работает отлично в пределах текущей директории - файлы отлично отдаются через header('X-SendFile: название файла'). Но мне хочется, чтобы файлы скачивались из директории, лежащей вне сервера - через задание абсолютного пути.

Пробовал задавать путь в скрипте:
$makePath = 'C:/путь_к_файлу/файл.txt';
var_dump(file_exists($makePath));
header('X-SendFile: '.$makePath);

var_dump показывает, что файл по этому пути есть и существует - bool(true), но header ничего не отправляет и выводит ошибку "The requested URL was not found on this server."

Возможно ли то, что я хочу сделать? И если да, то где и что надо прописать, чтобы всё заработало?
  • Вопрос задан
  • 9167 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Remmi
@Remmi Автор вопроса
Решение нашлось. Нужно прописать в httpd.conf строчку
XSendFilePath "Путь к внешней директории"
И после этого файлы из неё будут нормально скачиваться через абсолютные пути
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽