Project

General

Profile

X-LIGHTTPD-send-file » History » Revision 6

Revision 5 (dandv, 2009-03-19 00:34) → Revision 6/9 (dandv, 2012-08-11 10:42)

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