X-Sendfile错误,找不到文件

时间:2012-07-10 13:46:55

标签: php x-sendfile

我正在使用apache2 webserver,我已经安装了mod_xsendfile 我有类似的东西:

                header('Content-type: application/zip');
                header('Content-Disposition: attachment; filename="file.zip"');
                //header("X-Accel-Redirect: /file/protected/file.zip"); //for nginx server
                header('X-Sendfile: /protected/file.zip');
                exit();

我在/etc/apache2/apache2.conf中启用:

XSendFile on

当我点击/file/index.php中的“下载”按钮时,它给出了错误,index.php位于/ file / Not Found

我尝试在第一个地方移动header('X-Sendfile: /file/protected/file.zip');,但它是一样的..

当我使用header("X-Accel-Redirect: /file/protected/file.zip");它工作但是给我空的.zip文件,无论如何它不是apache2服务器..

文件只有几个KB

任何人都知道如何修复它?

修改 它在error.log中说:给定的路径在根路径之上:xsendfile:无法找到文件:/protected/file.zip

我设置了XSendFilePath / protected,现在的错误是: (2)No such a file or directory: xsendfile cannot open file: /protected/file.zip,referer: http://domain.com/file/

1 个答案:

答案 0 :(得分:2)

查找mod xsendfile文档。您必须设置允许其提供文件的目录。如果你已经这样做了,那么我会怀疑其他一些问题,例如没有提供符号链接等等。