WK64.com 〜 アップローダ(mod_uploader) 〜 最終更新日2007/03/20
PV総数:021769
昨日:228 本日:50
 
アップローダ(mod_uploader)
ファイルをサーバにアップロードできる仕組みを実現するのが、アップローダ。
FTPでもできますが、Webブラウザから手軽にアップロードでき、ファイル毎にダウンロードや削除するためのパスワードを設定することもできるアップローダを設置してみました。(試験的に公開しています)
アップローダにも色々なものがありますが、動作が速くて設置が簡単な、mod_uploaderというApache用のモジュールを採用しました。
mod_uploaderのパッケージをダウンロードし、モジュールの作成とインストールを実行します。
当サイトでは現在バージョン2.3.0をインストールしています。

[root@sv01 ~]# tar xzvf mod_uploader-2.3.0.tgz
[root@sv01 ~]# cd mod_uploader-2.3.0

以下は、./configureを実行する際に足りないと言われたもので、
yumでインストールしました。
環境によって異なると思いますので、足りないと言われたものについてはインストール
していきましょう。

[root@sv01 mod_uploader-2.3.0]# yum -y install gcc-c++.x86_64
[root@sv01 mod_uploader-2.3.0]# yum -y install httpd-devel.x86_64
[root@sv01 mod_uploader-2.3.0]# yum -y install libtool.x86_64
[root@sv01 mod_uploader-2.3.0]# yum -y install ImageMagick-c++-devel.x86_64

以下、モジュール作成とインストール。
(オプションにturion64が指定できるかどうかわからないので、とりあえずathlon64で)

[root@sv01 mod_uploader-2.3.0]# ./configure --with-iconv-const --enable-thumbnail --with-march=athlon64
[root@sv01 mod_uploader-2.3.0]# make apache-module
[root@sv01 mod_uploader-2.3.0]# make -f GNUmakefile.apache install
上記を行うと、httpd.confにmod_uploaderの記述が追加されます。そのままでもいいですが、他のモジュールの記述に合わせました。
httpd.confの以下の箇所を変更。

LoadModule uploader_module    /usr/lib64/httpd/modules/mod_uploader.so
 
LoadModule uploader_module    modules/mod_uploader.so
これだけでは有効になりませんので、httpd.confのあるディレクトリから見て、../conf.dに、mod_uploader.conf(.confで終わっていればファイル名は何でもいい)を作成します
うちの場合は、以下の内容にしました。
<Location /uploader>
    SetHandler              uploader
</Location>

<Location /uploader/admin>
    AuthUserFile [htpasswdコマンドで作成したパスワードファイルのフルパス]
    AuthGroupFile /dev/null
    AuthName "Please enter your UserName and password"
    AuthType Basic
    require valid-user
</Location>

UploaderBaseUrl                 "http://wk64.com/uploader"
UploaderDataDirectory           "/var/www/Uploader/data"
UploaderFileDirectory           "/var/www/Uploader/file"
UploaderThumbDirectory          "/var/www/Uploader/thumb"
UploaderTempDirectory           "/var/www/Uploader/temp"

UploaderTotalFileSizeLimit      102400
UploaderTotalFileNumberLimit    1000
UploaderFileSizeLimit           1024
UploaderPerPageItemNumber       20

UploaderIndexViewTemplate      "/var/www/Uploader/tmpl/index.htm"
UploaderProgressViewTemplate   "/var/www/Uploader/tmpl/progress.htm"
UploaderDownloadViewTemplate   "/var/www/Uploader/tmpl/download.htm"
UploaderThumbnailViewTemplate  "/var/www/Uploader/tmpl/thumbnail.htm"
UploaderAdminViewTemplate      "/var/www/Uploader/tmpl/admin.htm"
UploaderErrorViewTemplate      "/var/www/Uploader/tmpl/error.htm"

Alias /up_img                  "/var/www/Uploader/img"
Alias /up_css                  "/var/www/Uploader/css"
Alias /up_js                   "/var/www/Uploader/js"
基本的にはmod_uploaderのドキュメントにあるサンプルと同じで、URL・ディレクトリとファイルサイズのみ変えました。
また、実際のディレクトリを作成し、必要なファイルをmod_uploaderのパッケージを展開してできたディレクトリよりコピーします。
必要なディレクトリを作成する。

[root@sv01 ~]# mkdir -p /var/www/Uploader/data

ディレクトリ(ファイル含む)をコピーする。

[root@sv01 ~]# cd /root/mod_uploader-2.3.0(mod_uploader-2.3.0.tgzを/root直下に展開していた場合)
[root@sv01 ~]# cp -R file /var/www/Uploader/
[root@sv01 ~]# cp -R thumb /var/www/Uploader/
[root@sv01 ~]# cp -R temp /var/www/Uploader/
[root@sv01 ~]# cp -R img /var/www/Uploader/
[root@sv01 ~]# cp -R css /var/www/Uploader/
[root@sv01 ~]# cp -R js /var/www/Uploader/
[root@sv01 ~]# cp -R tmpl /var/www/Uploader/

各ディレクトリをApacheの実行ユーザで読み書き可能にする。

[root@sv01 ~]# chown -R apache:apache /var/www/Uploader/*
あとはhttpdを再起動すれば、mod_uploaderが有効になります。
[root@sv01 ~]# /etc/rc.d/init.d/httpd restart
mod_uploader.confで指定したURL(http://wk64.com/uploader/)にアクセスすると、アップローダの画面が表示されます。
当サイトのアップローダも、試験的に公開しています。設定は上記の通り、1ファイルにつき最大1MBで、1,000ファイルまたは合計100MBまでアップロードできるようにしています。
あくまでも動作確認用ですので、アップロードされたファイルを予告無しに削除したり、アップローダを公開停止にすることもありますので、大切な用途には使わないようにしてください。 ちなみに、http://wk64.com/uploader/adminにアクセスすると、管理画面が表示されます。管理画面といっても、削除パスワードがわからないファイルを強制削除する機能しかありません。また、当サイトの管理画面にはアクセス制限を行っているので、ユーザとパスワードが判らないと表示できないようにしています。
 
トップページへ戻る