我有一个 Ruby-on-Rails 应用程序,由 Apache 和 Phusion-Passenger(在 Ubuntu Server 上)托管。在此应用程序中,我有一个控制器方法,该方法基本上根据当前登录的用户保护对某些文件的访问,然后使用 X-sendfile 为它们提供服务。该方法如下所示:
def show
if File.exists @file_name
sendfile @file_name, :xsendfile => true
else
render_404
end
end
它神秘地无法在我们的登台服务器上工作,我怀疑它与文件权限有关,因为每次我点击它时都会出现 404,但这不是我调用后会呈现的 404 页面render404
;因此我怀疑错误发生在sendfile
执行该行之后。
有人可以为我澄清一下,apache 通过 x-sendfile 提供服务器时,文件权限必须是什么吗?
PS 我还应该指出,我非常确定我的 X-sendfile 模块已正确配置并正常工作,因此这与此无关
答案1
与往常一样,它必须可供运行 Web 服务器的用户读取。