Home > 開発ツール・技術 > mod_xsendfile導入に関するメモ

mod_xsendfile導入に関するメモ

xmod

いきなり技術的なメモですがお許しを。

Webサービス作ってファイルをダウンロードさせたい場合、URL直打ちでダウンロードさせたくなかったり、認証後にしかダウンロードさせないようにしたい場合がありますよね。

それらを解決する方法はいくつかあるかと思いますが、mod_xsendfileが便利だと聞いたので導入してみましたよ。かな~り便利。

以下、作業メモです。CentOS+Apacheの場合ね。

■ インストール

さくっとインストールします。

yum -y install httpd-devel
wget http://tn123.ath.cx/mod_xsendfile/mod_xsendfile-0.9.tar.gz
tar xfz mod_xsendfile-0.9.tar.gz
cd mod_xsendfile-0.9
apxs -cia mod_xsendfile.c

■ 設定追加

moduleは自動で入るので一応確認しつつ、/etc/httpd/conf.d/xsendfile.confなんかを作って以下を書き込み。

<IfModule mod_xsendfile.c>
XSendFile on
XSendFileAllowAbove on
</IfModule>

■ Apache再起動

おもむろにApacheを再起動します。

■ テスト

ここではApacheのDocumentRoot以外の場所からのファイルをダウンロードさせてみますよ。

$filename = '/home/myname/goodies/goodone.gif';
header('Content-Length: ' . filesize($filename));
header('Content-Disposition: attachment; filename='.basename($filename));
header('X-Sendfile: '.$filename);

必要に応じて認証処理を加えればいい感じですね。

以上ですかね・・・。ダウンロード処理をさせるようなサービスなら導入を検討してみてもいいかもですね。

ちなみに個人的には「XSendFile on」の記述を忘れていたため、ダウンロードはされるが空のファイル、というみっともないハマリ方をしちゃいましたよ。ご注意あれ。

なお、いつもながら青い人にお世話になりました。また下記サイトも参考にさせていただきました。ありがとうございます。

» anysense-devel  PHPから静的な画像ファイルを効率的に出力する方法

@taguchiをフォロー!
Twitterもやっています!
Posted on November 25th, 2009 and last modified on November 24th, 2009.

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://www.ideaxidea.com/archives/2009/11/mod_xsendfile_installed.html/trackback
Listed below are links to weblogs that reference
mod_xsendfile導入に関するメモ from IDEA*IDEA ~ 百式管理人のライフハックブログ
pingback from Gitorious入れたメモ « **deadwinter** 10-01-06 (Wed) 22:36

[...] http://www.ideaxidea.com/archives/2009/11/mod_xsendfile_installed.html ちなみに個人的には「XSendFile on」の記述を忘れていたため、ダウンロードはされるが空のファイル、というみっともないハマリ方を [...]

Home > 開発ツール・技術 > mod_xsendfile導入に関するメモ

最近の記事
カテゴリー別
過去記事一覧

Return to page top