Division By Zero

ゼロで割る

ファイルリポジトリw2boxを設定する

Webブラウザで利用できるWebDAVでないファイルアップローダーのようなものを探していたところ、w2boxというものが見つかった。10ユーロ以上の寄付をすれば、商用利用(法人での利用)も問題ないようだ。

インストールメモは以下。例によって、CentOS/Apache2.0を使用。

  1. zipを解凍して、オーナーをWebサーバーに変更(例:apache:apache)
  2. upload.cgiをCGIパス(例:/var/www/cgi-bin/)に移動
  3. upload.cgiの#!/usr/bin/perlを環境にあわせて変更
  4. SSLを使用する場合は、index.php内の自身を指す"http://"を"https://"に変更
  5. .htaccessの内容を/etc/httpd/conf.d/w2box.conf等に移す

 (httpd.confでAllowOverride Noneとしている場合)

  1. config.php内のupload_cgiscriptを/cgi-bin/upload.cgiに変更
  2. config.php内のupload_tmpdirを/tmp等に変更

その他、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を作成してログをローテートするようにしたところで、今日は終了!