Xsendfile

So., 05/08/2012 - 14:21
Body

Info

Changes since 0.12, new Etag, modified options .. siehe: http://freecode.com/projects/modxsendfile/releases/323142

Automatisch

  1. PAKETQUELLE EINTRAGEN und dann apt-get update.
  2. ODER
  3. UNCOMMENT IF YOU USE THAT OR DESTRY SYSTEM on DL/UPDATES'
  1. /etc/apt/sources.list <- Paketquellen

  1. apt-get install libapache2-mod-xsendfile
Manuell


  1. apt-get install apache2-prefork-dev
  1. // apxs (APache eXtenSion) installieren
  2.  
  3. // Quellen holen
  4. /usr/bin/apxs2 -cia /tmp/mod_xsendfile.c
  5.  
  6. // und installieren Dann die Konfigurationsdatei unter
  7. /etc/apache2/mods-available/xsendfile.load erstellen:
LoadModule xsendfile_module /usr/lib/apache2/modules/mod_xsendfile.so
  1. <Files *.php>
  2. XSendFile on
  3. XSendFileAllowAbove on
  4. </Files>

Apache neustarten

  1. /etc/init.d/apache2 restart

und in die PHP-Datei folgende Header einfügen:

  1. header("X-Sendfile: $somefile");
  2. header("Content-Type: application/octet-stream");
  3. header("Content-Disposition: attachment; file=\"$somefile\"");
  4. exit;

Wichtig

Unbedingt in die Apache config adden (innerhalb )

  1. XSendFile on
  2. XSendFileAllowAbove on 

Testen wir

Php file erzeugen. Beachten das die Dateipfade stimmen und die Datei auch existiert.


  1. <?php
  2. $file = "/var/www/web/test.jpg";
  3. header("X-Sendfile: $file");
  4. header("Content-type: application/octet-stream");
  5. header('Content-Disposition: attachment; filename="test.jpg"');
  6. ?>

Wenn alles klappt sehen wir:


ACHTUNG die ZEILE "X-Sendfile..." TAUCHT NICHT AUF, AUS SICHERHEITSGRÜNDEN!!!!!!!!!!! Sie taucht auf wenn man die direktiven aus der apache config entfernt (so funktioniert xsendfile allerdings nicht mehr, also nur wenn man man den header sehen will machen).
  1. HTTP/1.1 200 OK Date: Thu, 17 Jun 2010 14:38:52 GMT
  2. Server: Apache X-Sendfile: /var/www/web/test.jpg
  3. Content-Disposition: attachment; filename="test.jpg"
  4. Content-Length: 0 Keep-Alive: timeout=3, max=100
  5. Connection: Keep-Alive
  6. Content-Type: application/octet-stream

File ist 0 bytes

Xsend ist falsch eingerichtet. Fehlen eventuell die direktiven in der apache config/.htaccess Quellen INFO:http://codeghar.wordpress.com/2009/12/31/django-apache-and-x-sendfile-in-debian/ http://www.admin-magazin.de/content/schnellere-downloads-durch-mod-xsendfile-fuer-apache2 http://www.qc4blog.com/?p=547 http://www.qc4blog.com/?p=555 http://codeutopia.net/blog/2009/03/06/sending-files-better-apache-mod_xsendfile-and-php/ http://www.yiiframework.com/wiki/129/x-sendfile-serve-large-static-files-efficiently-from-web-applications/ WEBSEITE: http://tn123.ath.cx/mod_xsendfile/
Add new comment
The content of this field is kept private and will not be shown publicly.

Plain text

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <drupal-entity data-*>
  • Web page addresses and email addresses turn into links automatically.
  • Lines and paragraphs break automatically.