ファイルをサーバにアップロードできる仕組みを実現するのが、アップローダ。
FTPでもできますが、Webブラウザから手軽にアップロードでき、ファイル毎にダウンロードや削除するためのパスワードを設定することもできるアップローダを設置してみました。(試験的に公開しています)
アップローダにも色々なものがありますが、動作が速くて設置が簡単な、mod_uploaderというApache用のモジュールを採用しました。
[root@sv01 ~]# tar xzvf mod_uploader-2.3.0.tgz
[root@sv01 ~]# cd mod_uploader-2.3.0
[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
[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の記述が追加されます。そのままでもいいですが、他のモジュールの記述に合わせました。
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
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
[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/
[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にアクセスすると、管理画面が表示されます。管理画面といっても、削除パスワードがわからないファイルを強制削除する機能しかありません。また、当サイトの管理画面にはアクセス制限を行っているので、ユーザとパスワードが判らないと表示できないようにしています。
|