Eine empfohlene Art, Datei-Downloads über PHP (oder ein anderes Skript) zu handhaben, ist die Verwendung des sogenannten 'X-Sendfile'-Antwort-Headers.
Das PHP-Skript übernimmt die Authentifizierung und setzt nach der Validierung einige Antwortheader zusammen mit einem 'X-Sendfile', das den Webserver anweist, eine Datei zu liefern; das Skript endet und der Webserver übernimmt.
Ein einfaches Beispiel finden Sie hier:
http://www.jasny.net/articles/how- i-php-x-sendfile/