Como baixar arquivos grandes através do script PHP [duplicado]

Esta pergunta já tem uma resposta aqui:

Download de arquivos grandes de forma confiável em PHP 3 respostas

Usando o PHP, estou tentando servir arquivos grandes (até possivelmente 200 MB) que não estão em um diretório acessível pela web devido a problemas de autorização. Atualmente, eu uso umreadfile() chame alguns cabeçalhos para servir o arquivo, mas parece que o PHP está carregando na memória antes de enviá-lo. Pretendo implantar em um servidor de hospedagem compartilhado, o que não me permitirá usar muita memória ou adicionar meus próprios módulos Apache, como o X-Sendfil

Não posso deixar meus arquivos em um diretório acessível pela Web por razões de segurança. Alguém conhece um método que consome menos memória que eu poderia implantar em um servidor de hospedagem compartilhado?

EDITAR

if(/* My authorization here */) {
        $path = "/uploads/";
        $name = $row[0];           //This is a MySQL reference with the filename
        $fullname = $path . $name; //Create filename
        $fd = fopen($fullname, "rb");
        if ($fd) {
            $fsize = filesize($fullname);
            $path_parts = pathinfo($fullname);
            $ext = strtolower($path_parts["extension"]);
            switch ($ext) {
                case "pdf":
                header("Content-type: application/pdf");
                break;
                case "zip":
                header("Content-type: application/zip");
                break;
                default:
                header("Content-type: application/octet-stream");
                break;
            }
            header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");
            header("Content-length: $fsize");
            header("Cache-control: private"); //use this to open files directly
            while(!feof($fd)) {
                $buffer = fread($fd, 1*(1024*1024));
                echo $buffer;
                ob_flush();
                flush();    //These two flush commands seem to have helped with performance
            }
        }
        else {
            echo "Error opening file";
        }
        fclose($fd);

questionAnswers(4)

yourAnswerToTheQuestion