x_sendfile无法加载

时间:2012-09-08 20:18:04

标签: php apache module x-sendfile

我正在尝试在Mac OS X Server上的apache web服务器中安装x_sendfile。 一切似乎都很好,安装和httpd.conf配置 “LoadModule xsendfile_module libexec / apache2 / mod_xsendfile.so”“XSendFile ON”

如果我从终端运行“httpd -M”,我可以在列表中“xsendfile_module(shared)”

但是在phpinfo()或apache_get_modules()中没有列出x-sendfile。如果我尝试在我的PHP代码中使用x-sendfile下载任何文件,浏览器只需下载一个0 kb的文件。 我可以在标题数据中看到x-sendfile头标记。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

确保httpd.conf文件中包含此行。在页面设置下添加:

  XSendFile On   XSendFilePath / dir-where-the-file-gets-downloaded-from /

答案 1 :(得分:0)

我在CentOS遇到了类似的问题。我补充说:

XSendFile On 
XSendFilePath /dir-where-the-file-gets-downloaded-from/

到httpd.conf,但我也确保在php页面本身使用绝对路径

header('Content-Type: '.$formatMIME);
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=User_sees_this.pdf"); 
header("X-Sendfile: 'absolute_path_goes_here'");

据我所知,httpd -M是否显示模块已安装,上面的代码应该可以正常工作。你不会在phpinfo中看到xsendfile,因为它不是php的扩展。我不能和apache_get_modules()说话。

同样,这是基于我个人经验的评论,并不是一个明确的答案。