Drupal: XSend bzw mod_xsendfile auf Debian installieren

Für Apache gibt es ein super Modul, welches den Dateitransfer massiv verschnellert, bzw die Ladezeit bis zum Dateitransfer. Das Modul heisst mod_xsendfile. Ich hatte einige Probleme das Ding auf meinem Debian zum laufen zu bringen. So habe ich es gemacht:

  1. Wechseln zum Ordner für Apache Module (/usr/lib/apache2/modules; wenn anders dann kann man den modules Ordner suchen: find / -name 'modules')
  2. Source herunterladen mit Link (Link Datei; Link Seite)
  3. apxs2 -cia mod_xsendfile.c (Achtung, bei mir musste ich eine 2 an das apxs anhängen, ist nicht so auf Homepage beschrieben!)
  4. Bei mir kam dann am Schluss folgende Fehlermeldung:
    1. apxs:Error: Activation failed for custom /etc/apache2/httpd.conf file..
      apxs:Error: At least one `LoadModule' directive already has to exist..
  5. Lösen kann man das Problem mit folgendem Trick:
    1. nano /etc/apache2/httpd.conf
    2. Die folgenden zwei Zeilen untereinander eintragen
    3. #LoadModule directive to aid module installations
      #LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so
    4. Wieder zumachen und speichern
  6. Apache neu starten (invoke-rc.d apache2 restart)
  7. Ich bin nicht ein Fan von Core-Patches, jedoch ziehe ich in diesem Fall ein solcher vor. Anstelle des xfile Modules von Drupal reicht es (für meinen Fall) in der includes/file.inc die Funktion file_transfer mit der Zeile "$headers[] = 'X-Sendfile: '.$source;" gerade nach dem ersten if {} Konstrukt einzufügen. Das Drupal modul xfiles ist so überflüssig.
function file_transfer($source, $headers) {
  if (ob_get_level()) {
    ob_end_clean();
  }
  $headers[] = 'X-Sendfile: '.$source; 
  foreach ($headers as $header) {
  ..

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <php>
  • Zeilen und Absätze werden automatisch erzeugt.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <drupal>, <js>, <php>, <vb>. PHP-Quellcode kann in <?php ... ?> or <% ... %> eingeschlossen werden.
  • Verlinkte Bilder mit dem 'rel="lightbox"' in <a> Tags wird die Lighbox aufrufen, wenn darauf geklickt wurde.

Weitere Informationen über Formatierungsoptionen

Mit dem Absenden dieses Formulars, akzeptieren Sie die Datenschutzrichtlinie von Mollom.