2016-08-18 13 views
0

ファイルを返さないx-sendfileについては、他にもたくさんの質問がありますが、どれも問題を解決できないようです。apache x-sendfileがファイルを見つけることができません

サイトのパブリックルート以外のディレクトリから画像を提供していて、できるだけオーバーヘッドの少ない状態でそれらの画像をユーザーに配信したいので、readfile()で処理しないでください。したがって私はx-sendfileを使用しようとしています。

私の開発環境は、64ビットウィンドウ上にXAMPP(apacheとphp)をインストールしたものです。 mod_xsendfile.soの64ビットWindowsバイナリを使用していますが、これはphpinfo()に従って正しく読み込まれているようです。

大文字と小文字の区別やバックスラッシュ/フォワードスラッシュで問題になる可能性があると思っていましたが、これは当てはまりません。

エラーログからパスをコピーして、イメージがロードされるエクスプローラウィンドウに貼り付けると、ファイルは存在します。また、私はfile_existsとfilesizeを使ってPHPのパスを検証しています。

httpd.confの設定:私はこれらのファイルが提供されるように得ることができる方法についてどのような洞察力は次のようになり

LoadModule xsendfile_module modules/mod_xsendfile.so 
XSendFile On 
XSendFilePath "c:/images-store/" 

PHPコード

header('Content-Type: image/jpeg'); 
header('X-Sendfile: c:/image-store/5cca6ef24ae46c4346c24846ee3e5521213562ef-thumb.jpg'); 

エラー・ログ・エントリ

[pid 3208:tid 1900] (20023)The given path was above the root path: [client 127.0.0.1:57477] xsendfile: unable to find file: c:/image-store/5cca6ef24ae46c4346c24846ee3e5521213562ef-thumb.jpg 

すばらしいです。

答えて

0

大文字と小文字が区別されます。私はおそらく...私の開発のためのLinuxへ戻っ

を切り替える必要があり、資本C.

XSendFilePath C:/images-store/ 

なるために必要なパスでC

関連する問題