mod_uploader は,よくあるアップローダを Apache のモジュールとして実 装したものです.以下のような特長があります.
mod_uploader は,Windows で動作します.( UNIX 版はこちら)
詳細を以下に示します.
下記のようにすることで check out できます.(パスワードは空)
$ cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/mod-uploader login $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/mod-uploader co mod_uploader
また, ViewCVS 経由で参照 することもできます.
mod_uploader-2.4.5.msi を実行すれば OK です.デフォルトでは C:/Program Files/mod_uploader 以下にインストールされます.
動作環境 にも書いてありますが,あらかじめ Apache 及び ImageMagick を インストールしておく必要があります.(参考: Apache インストール手順, ImageMagick インストール手順)
Apache を普通に起動すれば OK です.設置した場所にブラウザでアクセス してみましょう.
Apache のエラーログにエラー内容が出力されているので,内容を確認して設定 を見直してください.
UploaderBaseUrl と違うアドレスでアップローダにアクセスした場合に発生し ます.例えば,UploaderBaseUrl では http://localhost/up と指定しているの に,ブラウザでは http://127.0.0.1/up にアクセスしている場合がこれに該当 します.
UploaderBaseUrl で指定したアドレスでアクセスしてください.
mod_uploader は,高速動作のため,ダウンロードカウンタのカウントアップを メモリ上でのみ行っており,Apache の終了時にデータをファイルに書き出すよ うになっています.そのため,Apache が正常に終了しなかった場合,ファイル への書き出しが行われずダウンロードカウンタが以前の状態にリセットされて しまいます.
通常はコンパイル作業は不要です.ソースを編集して細かくカスタマイズした い方のみ読んでください.
最初に,UNIX 系 OS で configure します.
$ ./configure
次に,ディレクトリを丸ごと Windows にコピーし,src/GNUmakefile.win32 の 次の部分を, Apache をインストールしたディレクトリおよび ImageMagick をインストールしたディレクトリに書き換えます.
APACHE_DIR := C:/Server/Apache2 MAGICK_DIR := C:/Application/Image/Edit/ImageMagick
以上が完了したら,src/GNUmakefile.win32 を使って make します.
> cd src > vsvars32.bat > make -f GNUmakefile.win32
vsvars32.bat は,コマンドラインから Visual C++ .NET を使うための環 境設定を行うスクリプトです. Visual C++ .NET をインストールしたディ レクトリ以下の Common7/Tools にあります.
[スタート] - [設定] - [コントロールパネル] にある「プログラムの追加と削 除」から行えます.掲示板のデータは自動的には消去されませんので完全に消 去したい場合は手動でフォルダ (デフォルトでは C:/Program Files/mod_uploader) を削除してください.
mod_uploader が動作中だとアンインストールが行えません.アンインストール 作業が途中で止まってしまう場合は,httpd.conf から mod_uploader の設定を 削除した後 Apache を再起動し,再度試してみてください.
mod_uploader は,表示を非常に高速に行うことができます.
右に他のアップローダとの速度比較を示します.HTML は,表示を静的な HTML で行うもの,Perl および PHP はそれぞれの言語で作られたアップローダを指 しています.測定には ApacheBench を用い,5 並列で 10,000 リクエスト発行 した場合の値をプロットしました.
mod_uploader は Perl の約 100 倍,PHP の約 10 倍高速に動作しています. これらの言語を使った場合, mod_perl (ModPerl::Registry)や APC を使用すればある程度速度を改善することが可能です.それでも, mod_uploader には及びません.
また,mod_uploader は,静的な HTML を用いるものと比べてもわずかながら高 速に動作します.これは,表示に静的な HTML を用いる場合でも,アップロー ド処理のためには libphp4.so をロードする必要があるので,そのためのオー バーヘッドがかかっているのが原因と思われます.libphp4.so のロードを無く した場合,HTML の値は 2,800 を超えて最速になります.
mod_uploader は,巨大なファイルのアップロードにもわずかなメモリしか消費 しません.
それに対してアップローダの多くは,アップロードされたデータを一旦全てメ モリに入れて処理するため,アップロードにはファイルサイズに比例したサイ ズのメモリを消費してしまいます.
PayPal 経由での寄付を受け付けています.mod_uploader が気に入った場合は よろしくお願いします.いただいたお金は開発のための書籍購入などにあてさ せていただきます.
プログラムの作成にあたってお世話になった文献を紹介します.