- 2009-11-25 (Wed) 13:30
- 開発ツール・技術

いきなり技術的なメモですがお許しを。
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」の記述を忘れていたため、ダウンロードはされるが空のファイル、というみっともないハマリ方をしちゃいましたよ。ご注意あれ。
なお、いつもながら青い人にお世話になりました。また下記サイトも参考にさせていただきました。ありがとうございます。
- Newer: WordPressに『AdSense Manager』を導入する方法
- Older: 【夜カフェ】 ラウンジ ie/イエ(中目黒)
Comments:0
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」の記述を忘れていたため、ダウンロードはされるが空のファイル、というみっともないハマリ方を [...]


























