Una forma recomendada de manejar las descargas de archivos a través de PHP (o cualquier otro script) es mediante el llamado encabezado de respuesta 'X-Sendfile'.
El script PHP maneja la autenticación y, una vez validado, establecerá algunos encabezados de respuesta junto con un 'X-Sendfile' que le dice al servidor web que entregue un archivo; el script finaliza y el servidor web se hace cargo.
Vea aquí un ejemplo simple:
http://www.jasny.net/articles/how- i-php-x-sendfile/