上で実行されています。
Centosにmod_xsendfileをインストールする。あなたはその後、単純な、xsendfile取得するためにEPELリポジトリを有効にする必要があります。その後
yum update
yum install mod_xsendfile
モジュールが正しく使用してインストールされているかどうかをチェックすることができます:
apachectl -M | grep xsendfile
を設定/ Pleskの部分。 Pleskはすべてのhttpd.confファイルを自動的に生成するため、ファイルを手作業で変更することはPlesk UIを介して行われた変更によって上書きされる可能性があるため危険です。 >サーバ設定 - デフォルトではhttp.confファイルはvhost.confとvhost_ssl.conf、インクルードが
/var/www/vhosts/system/[yourvhostname]/conf
に格納されている仮想ホストのためにあなたがssh経由でそれらを編集するか、または(バーチャルホストをPleskのUIインターフェイスを使用してが含まれます - >追加のApacheディレクティブ)。非Pleskのユーザーは自分のhttpd.confの正しいバーチャルホストセクションの下に次のディレクティブを追加するために
私はいくつかの問題がいくつかのテストは、私が正しいディレクティブを見つけた後、サーバーは、0バイトのファイルを送信していた原因だった
まず時間がされています
<Directory "/">
EnableSendfile on
XSendFile on
# Absolute path, no trailing slash!
XSendFilePath "/var/www/vhosts/[yourvhostname]/storage"
</Directory>
「/」とは異なるDirectoryディレクティブを使用すると、空のファイルが生成され、ログには何のエラーも発生しません。ヘッダーに相対パスを渡すことによって何が起こるかをテストしませんでした。これは、誰かがテストの時間を避けることができます
return response(null)
->header('Content-Type' , 'application/octet-stream')
->header('Content-Disposition', 'attachment; '.$filename)
->header('X-Sendfile', $fullfilepath);
希望:私はPHPのフレームワークとしてLaravelを使用してい
原因は、ファイルがでユーザーに送信することができます。
は、単純に文字列なので、 'ヘッダ(「X-SENDFILE:」です。$ファイルパス); 'は、使いたいものになります。 – dothebart