I ' m столкнулся с проблемой при использовании xsendfile в моем приложении Rails 3.
Я использую capistrano для управления развертываниями, и в каждом выпуске есть символическая ссылка на каталог shared / assets (например, / var / www / site / Release / 1234 / assets => / var / www / site / shared / assets). Проблема в том, что XSendFile, похоже, не следует по символическим ссылкам. В моих журналах apache я вижу следующую ошибку:
The given path was above the root path: xsendfile: unable to find file: /var/www/site/releases/20110406205607/assets/pdfs/2/original/test.pdf
У меня конфигурация XSendFilePath установлена как
XSendFilePath /var/www/site/shared/assets
Если я переключу конфигурацию на:
XSendFilePath /var/www/site/releases
, тогда все будет работать нормально. Итак, у меня есть пара вопросов:
1) Есть ли способ заставить XSendFilePath следовать по символической ссылке?
2) Есть ли риск безопасности при установке XSendFilePath в каталог моих релизов? Другими словами, открыть доступ ко всему этому каталогу?