mod_xsendfileとは?
mod_xsendfileはダウンロードするソースをドキュメントルート以外に配置するために使います。
これを設定すればソースへの直接リンクからソースを取得されることがなくなります。php等で認証した後でソースを読み書きしても同じなのですが、サイズが大きいファイル等の場合転送の負荷が気になります。この点mod_xsendfileはapacheのモジュールとなっているのでphp等に依存しないで転送できます。
mod_xsendfileのインストール
ソースをコンパイルして使うのでgccとapxsが必要となります。
yum -y install httpd_devel gcc
後はサイトからソースを取得して解凍し、コンパイルします。
github
apxs -cia mod_xsendfile.c
さらにapacheの設定に取得するパスを記述します
/etc/httpd/conf/httpd.conf
XSendFilePath /path/to/folder
これでapacheをリスタートすればインストール完了です。
/sbin/serivce httpd restart
ちなみに最初うまく動かない事がありまして、deflateの設定がNGでした。
#SetOutputFilter DEFLATE
mod_xsendfileをphpから使う
実際に使うにはContent-Type,Content_Size,X-sendfileをヘッダに出力するだけです。
.htaccess
XSendFile on
とても簡単ですね。.htaccessで出力パスは設定できるようですが、ローカルにあまり設定を置きたくなかったのでこのようにしました。
色々使えると思いますよ。
Copyright(c) 2015-2023 Birdland Ltd. All Rights Reserved.