2012-09-08 1 views
0

Mac OS X Server의 apache 웹 서버에 x_sendfile을 설치하려고합니다. 모든 설치에 잘 보인다 httpd.conf 파일은 "ON XSendFile" "을 LoadModule xsendfile_module libexec 디렉토리/아파치/mod_xsendfile.so"로 구성되어 있습니다.x_sendfile이로드되지 않습니다.

나는 터미널 내가 할 수있는 자체 "(공유) xsendfile_module"목록에서에서 "아파치 -M"를 실행합니다.

그러나 phpinfo() 또는 apache_get_modules()에서 x-sendfile은 나열되지 않습니다. php 코드에서 x-sendfile을 사용하여 파일을 다운로드하려고하면 브라우저는 단지 0KB 파일을 다운로드합니다. 헤더 데이터에서 x-sendfile 헤더 태그를 볼 수 있습니다.

제안 사항?

답변

1

httpd.conf 파일에이 행이 있는지 확인하십시오. 페이지의 설정 아래에 추가 :

XSendFile을 XSendFilePath /에 DIR-곳 - 더 - 파일 - 다운로드됩니다-에서/

+0

이것은 이미 완료되었습니다. 터미널에서 모듈을 강제로로드하려고 시도 할 수있는 방법이 없습니까? 로그에 오류가 없습니다. – einord

0

내가 CentOS는와 유사한 문제가 발생했습니다. 나는 추가 :

XSendFile On 
XSendFilePath /dir-where-the-file-gets-downloaded-from/ 

을을 httpd.conf에, 그러나 나는 또한 아파치 -M은을 보여주는 경우 내가 말할 수있는 지금까지 PHP는 페이지 자체

header('Content-Type: '.$formatMIME); 
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=User_sees_this.pdf"); 
header("X-Sendfile: 'absolute_path_goes_here'"); 

을에 절대 경로를 사용하는 것을 확인했다 모듈이 설치되어 있으면 위의 코드가 작동해야합니다. phpinfo는 PHP의 확장이 아니기 때문에 xsendfile이 표시되지 않습니다. 나는 apache_get_modules()와 말할 수 없다.

다시 말하지만, 이는 내 개인적인 경험에 근거한 설명이며 확실한 답변이 아닙니다.

관련 문제