Une méthode recommandée pour gérer les téléchargements de fichiers via PHP (ou tout autre script) consiste à utiliser l'en-tête de réponse "X-Sendfile".
Le script PHP gère l'authentification et une fois validé, il définira quelques en-têtes de réponse avec un 'X-Sendfile' qui indique au serveur Web de livrer un fichier ; le script se termine et le serveur Web prend le relais.
Voir ici pour un exemple simple :
http://www.jasny.net/articles/how- i-php-x-sendfile/