Search code examples
phpx-sendfile

X-Sendfile error, file not found


I'm using apache2 webserver and I have installed mod_xsendfile I have something like:

                header('Content-type: application/zip');
                header('Content-Disposition: attachment; filename="file.zip"');
                //header("X-Accel-Redirect: /file/protected/file.zip"); //for nginx server
                header('X-Sendfile: /protected/file.zip');
                exit();

I enabled in /etc/apache2/apache2.conf:

XSendFile on

When I click on Download button in /file/index.php it gives me error, index.php that is located in /file/ Not Found

I tried moving header('X-Sendfile: /file/protected/file.zip'); at the first place but it's the same..

When I use header("X-Accel-Redirect: /file/protected/file.zip"); It works but gives me empty .zip file, anyway its for not apache2 server..

File has only few KB

Anyone know how to fix it ?

EDIT: It says in error.log: The given path was above the root path: xsendfile: unable to find file: /protected/file.zip

I set XSendFilePath /protected and the erro now is: (2)No such a file or directory: xsendfile cannot open file: /protected/file.zip,referer: http://domain.com/file/


Solution

  • Look up the mod xsendfile documentation. You have to set the directories that its allowed to serve files from. If you've done that, then I would suspect some other issue, such as symlinks not being served, etc....