Project

General

Profile

Actions

X-sendfile

Option to let lighty handle large file-downloads instead of PHP.
  • X-Sendfile, X-LIGHTTPD-send-file (old alias)
  • X-Sendfile2 (available since 1.4.24)

Description

Let lighty handle downloads of large files instead of using PHP.

see mod_fastcgi page for details

HowTo

Your typicall FastCGI setup + "allow-x-send-file" => "enable"

 fastcgi.server = { ".php" => { "127.0.0.1" => { # .... "allow-x-send-file" => "enable" } } } 

Tell PHP not to handle the file download, instead set up a header like this:

 <?php /** * lighttpd's feature of X-Sendfile explained. * * @author Björn Schotte <schotte@mayflower.de> */ $file_on_harddisk = "/data/vhosts/bjoern/htdocs/acbd18db4cc2f85cedef654fccc4a4d8download.tar.gz"; $file_to_download = "download.tar.gz"; header( "Content-Disposition: attachment; filename=\"" . $file_to_download . '"' ); Header( "X-LIGHTTPD-send-file: " . $file_on_harddisk); ?> 

Notes

Lighttpd 1.4.40 and later support Range requests from client in conjunction with backend X-LIGHTTPD-send-file response.

External links

Updated by gstrauss over 4 years ago · 9 revisions