ファイルリポジトリw2boxを設定する
Webブラウザで利用できるWebDAVでないファイルアップローダーのようなものを探していたところ、w2boxというものが見つかった。10ユーロ以上の寄付をすれば、商用利用(法人での利用)も問題ないようだ。
インストールメモは以下。例によって、CentOS/Apache2.0を使用。
- zipを解凍して、オーナーをWebサーバーに変更(例:apache:apache)
- upload.cgiをCGIパス(例:/var/www/cgi-bin/)に移動
- upload.cgiの#!/usr/bin/perlを環境にあわせて変更
- SSLを使用する場合は、index.php内の自身を指す"http://"を"https://"に変更
- .htaccessの内容を/etc/httpd/conf.d/w2box.conf等に移す
(httpd.confでAllowOverride Noneとしている場合)
その他、config.phpはお好みで変更。今回は下記を変更した。
- w2box_title
- max_filesize
- allowed_ext
- log
- log_filename
- upload_progressbar
設置して試してみると、きちんと動作はするのだが、Apacheのエラーログにいろいろ出てくる。こんな感じに。
[client X.X.X.X] PHP Notice: Undefined index: error in /var/www/html/w2box/index.php on line 194, referer: https://XXX/cgi-bin/upload.cgi?sid=XXXX&maxsize=2147483648
[client X.X.X.X] PHP Notice: Undefined variable: dirlevel in /var/www/html/w2box/index.php on line 251, referer: https://XXX/w2box/smas/
[client X.X.X.X] PHP Notice: Undefined variable: dir in /var/www/html/w2box/index.php on line 262, referer: https://XXX/w2box/smas/
どうもルート階層でのファイルアップロードや、フォルダ作成時に、いくつかの変数が未定義になるようだ。PHPに(も)詳しくないので、バージョンの違いなのかもしれない。とりあえず、以下のような感じで修正した。
< if ($file['error']!=0) { --- > if (isset($file['error']) && $file['error']!=0) {
あとは、lang/ja.phpの「添付」を「アップロード」に変更したり、images/iconsにcsv.gifがなかったのでxls.gifからコピーした程度。
/etc/logrotate.d/w2boxを作成してログをローテートするようにしたところで、今日は終了!