mod_uploader は,よくあるアップローダを Apache のモジュールとして 実装したものです.以下のような特長があります.
http://acapulco.dyndns.org:8888/up/
mod_uploader は,UNIX 系 OS 及び Windows で動作します. 詳細を以下に示します.
開発は,Linux kernel 2.6.10,Apache 2.0.52,ImageMagick 6.1.8.8 で行っ ています.
The zlib/libpng License (翻訳) に従います.ライセンスの範囲内であれば自由に改造・再配布を行ってもらってかま いません.
バグを見つけた場合は,リンク先の「新規レポート」から書き込んでください.
GCC でコンパイルする場合は,
$ ./configure
$ make
とします.Intel C++ Compiler でコンパイルする場合は,
$ CC=icc ./configure
$ make
とします.
configure は次のオプションを受け付けます.エラーがでた場合は,--with-apxs2 や --with-aprconf を試してみてください.
まず,UNIX 系 OS で configure します.
$ ./configure
次に,ディレクトリを丸ごと Windows にコピーし,src/GNUmakefile.win32 の次の部 分を,Apache をインストールしたディレクトリおよびImageMagick をイン ストールしたディレクトリに書き換えます.
APACHERDIR := C:/Server/Apache2
MAGICKDIR := C:/Application/Image/Edit/ImageMagick
以上が完了したら,src/GNUmakefile.win32 を使って make します.
> cd src
> vsvars32.bat
> make -f GNUmakefile.win32
vsvars32.bat は,コマンドラインから Visual C++ を使うための環境設定 を行うスクリプトです.Visual C++ をインストールしたディレクトリ以下 の Common7/Tools にあります.
次のコマンドを実行するだけで OK です.
$ su
# make install
コンパイル or ダウンロードした mod_uploader.so を Apache をインストー ルしたディレクトリ以下にある modules ディレクトリにコピーし,Apache の設定ファイル (httpd.conf) に
LoadModule uploader_module modules/mod_uploader.so
を追加します.
次に,環境変数 APR_ICONV_PATH に,Apache をインストールしたディレク トリ以下にある bin/iconv ディレクトリへのパスを指定します.これが正 常に行われていないと,「文字コードの変換を行うコンバータが存在しませ ん.」というエラーが発生します.
設定は,Apache の設定ファイル(.htaccess は不可)に,以下のように記述 します.(* 印がついているものは必須) テンプレートは,tmpl ディレクトリに入っている view.htm,download.htm, thumbnail.htm,error.htm を利用してください.
<Location アップローダを設置するパス>
SetHandler uploader
Url アップローダの URL (RSS の生成に利用)
FileDirectory アップロードファイルを保存するディレクトリ[*]
ThumbDirectory サムネイル画像を保存するディレクトリ[*]
TmpDirectory 一時ファイルを保存するディレクトリ[*]
LockDirectory ロックファイルを保存するディレクトリ[*]
MaxFileSize 一回にアップロードできるファイルの最大サイズ(KB)
TotalFileSizeLimit ファイルの合計サイズの上限値(KB)
TotalFileNumberLimit ファイルの個数の上限値
PerPageItemNumber 1 ページあたりに表示するアイテム数
ViewTemplateFile トップページのテンプレートファイル[*]
DownloadTemplateFile DL pass 入力画面のテンプレートファイル[*]
ThumbTemplateFile サムネイルページのテンプレートファイル[*]
ErrorTemplateFile エラーページのテンプレートファイル[*]
</Location>
http://foo/up に設置する場合の設定例は以下のようになります./css や /thumb の Alias は必須ではありません.テンプレートを書き換えたくない 場合に指定してみてください.(これはあくまでも例です.ディレクトリや ファイルのパスは環境よって違ってきます)
<Location /up>
SetHandler uploader
Url "http://acapulco.dyndns.org/up/"
FileDirectory "Z:/prog/Apache/Uploader/file"
ThumbDirectory "Z:/prog/Apache/Uploader/thumb"
TmpDirectory "Z:/prog/Apache/Uploader/tmp"
LockDirectory "Z:/prog/Apache/Uploader/lock"
MaxFileSize 1024
TotalFileSizeLimit 10240
TotalFileNumberLimit 1000
PerPageItemNumber 20
ViewTemplateFile "Z:/prog/Apache/Uploader/tmpl/view.htm"
DownloadTemplateFile "Z:/prog/Apache/Uploader/tmpl/download.htm"
ThumbTemplateFile "Z:/prog/Apache/Uploader/tmpl/thumbnail.htm"
ErrorTemplateFile "Z:/prog/Apache/Uploader/tmpl/error.htm"
</Location>
Alias /css "Z:/prog/Apache/Uploader/css"
Alias /thumb "Z:/prog/Apache/Uploader/thumb"
Windows でサムネイル作成機能を使う場合,環境変数 PATH に, ImageMagick をインストールしたディレクトリ (CORE_RL_*.dll があるディ レクトリ) を追加してください.
Apache を普通に起動すれば OK です.ただし,Intel C++ Compiler でコン パイルした場合は,下記のように LD_PRELOAD を指定しながら Apache を起 動する必要があります.(コンパイル時に -cxxlib-gcc を指定する手もある と思いますが,gcc-name に何を指定すれば良いのか分からなくて止まって ます)
$ LD_PRELOAD=/opt/intel/compiler80/lib/libunwind.so.5 "Apache の起動コマンド"
Apache を普通に起動すれば OK です.
$ perl -e 'print "\xc0\xdf\xc4\xea\xcf\xb3\xa4\xec\xa4\xac\xa4\xa2\xa4\xea\xa4\xde\xa4\xb9\xa1\xa5", "\n"'
設定漏れがあります.
Comming soon...
http://acapulco.dyndns.org/mod_uploader/api/
プログラムの作成にあたってお世話になったツールを紹介します.
プログラムの作成にあたってお世話になった文献を紹介します.