X-LIGHTTPD-send-file » History » Revision 5
Revision 4 (bestis, 2009-01-23 08:53) → Revision 5/9 (dandv, 2009-03-19 00:34)
h1. X-LIGHTTPD-send-file
{{>toc}}
Option to let lighty handle large file-downloads instead of PHP.
* X-LIGHTTPD-send-file (lighty v1.4)
* X-Sendfile: (lighty v1.5)
h1. Description
Let lighty handle downloads of large files instead of using PHP.
h1. HowTo
Your typicall FastCGI setup + "allow-x-send-file" => "enable"
<pre>
fastcgi.server = {
".php" => {
"127.0.0.1" => {
# ....
"allow-x-send-file" => "enable"
}
}
}
</pre>
Tell PHP not to handle the file download, instead set up a header like this:
<pre>
<?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);
?>
</pre>
h1. Notes
Lighttpd 1.4.20 does not support Range-requests with X-LIGHTTPD-send-file.
Range-request support in lighttpd 1.5 with X-Sendfile is unknown.
h1. External links
* http://blog.lighttpd.net/articles/2006/07/02/x-sendfile
* http://blog.thinkphp.de/archives/136-Make-the-download-of-large-files-with-PHP-and-lighty-very-easy.html