Apache und Dateien größer 2GB

Nach vielem Testen und langer Recherche ist es nun amtlich, wann und warum man mit der Webserver Software Apache zum aktuellen Zeitpunkt (Version 2.0.54) Dateien größer 2GB an Clients ausliefern kann…und wann eben nicht:

  1. Man brauch ein natives 64bit Betriebssystem, um überhaupt das Problem mit Dateien >2GB angehen zu können.
    Identische Kompilierungen auf 64bit Systemen (z.B. Solaris aus SPARC Hardware) und 32bit Systemen (z.B. dein-Standard-Managed-Linux-Server-Paket-beim-Webhoster-des-Vertrauens) haben zu unterschiedlichen Ergebnissen geführt:
    Auf allen 32bit Systemen, egal wie der httpd „gebaut“ wurde und egal wie groß die Datei ist (>2GB), ist nach 2097 MB Schluß mit dem Download.
    Auf 64bit Systemen funktioniert der Download für Dateien bis 4GB: größere Files hatte ich bisher nicht zur Hand, um das zu Testen (hint, hint).
  2. Das sind die compile time Optionen, die man der make Anweisung mitgeben muß:
    -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
  3. Alles wird besser mit Apache 2.2:
    „Large File Support
    httpd is now built with support for files larger than 2Gb on modern
    32-bit Unix systems. Support for handling >2Gb request bodies has also
    been added.“