Suponiendo que ya tienes tu ruta del archivo y nombre claro (que lo obtengas por otro médio). Se trata de generar las cabeceras HTTP adecuadas para indicar al cliente (navegador, gestor de descargas .. etc) que los datos que vas a enviar son para que los descargue y a su vez entregar el archivo al buffer de salida directamente.
Ambas cosas los haces con header() y readfile()
Tienes ejemplos en el foro por si buscas por ambas funciones y en la documentación oficial de PHP sobre readfile() y header:
www.php.net/readfile www.php.net/header
(en los comentarios de los usuarios de esas funciones tienes vários ejemplos).
Un saludo,