(追記)2015/12時点で Uber-Uploader がうまく働かなくなった。その件について Uber-Uploader 6.8.2 が気づいたら動かなくなっていた。どうやら CGI.pm の更新が原因みたい。で述べているので,参考にしてみて欲しい。
Uber-Uploader 6.8.2 の使い方(その2)
Uber-Uploader 6.8.2 の使い方(その3)
Uber-Uploader 6.8.2 の使い方(その4)
以前ブログで Uber-Uploader について少し書いたことがある。タイトルに Uber-Uploder という言葉はなかったが…。その際の Uber-Uploder のバージョンは 6.5 だった。その後,数度のバージョンアップがあり,今はバージョンが 6.8.2 になっている。今回,その使い方について書いてみた。ちょっと長いので,数回に分けようと思っている。
まずはシステムの前提を述べる。ここの記述している内容は,ほぼ全てFreeBSDで実際に実行している(コピーを間違えていなければだが…)。しかし,Uber-Uploader 自体は apache と cgi と php が使えれば特定のシステムでなくても使えるので,ディレクトリ名などを必要に応じて書き換えれば使えるはず,である(絶対の自信はないが…)
以下のような前提で話を書こう。
(前提) ここでは,/usr/local/www/data/ 以下に web server のファイルが置いてあるとしよう。 今回は,そのディレクトリの下に,uber_uploader/ というディレクトリを作り, さらに,その下に cgi-bin/ という cgi 用のディレクトリを置くとしよう。 また,アップロードされたファイルの置き場所も uber_uploader/ の下に uploadfiles/ というディレクトリを作っておくことにする。つまり,
/usr/local/www/data/uber_uploader/:Uber-Uploader のメインのディレクトリ /usr/local/www/data/uber_uploader/cgi-bin/:cgi用のディレクトリ /usr/local/www/data/uber_uploader/uploadfiles/:アップロードされたファイル用のディレクトリということになる。
まずはインストール(ファイルの設置の仕方)について述べよう。ネットで検索するといろんなサイトから Uber-Uploader をダウンロードすることができる。 ダウンロードすると圧縮されたファイルが得られるので,それを展開しておく。
(0) 必要な条件
添付されている文章(INSTALL_AND_FAQ.HTML)に書かれている必要な条件は以下の4つ。
(a) unixやlinux というOS
これはFreeBSDならOK。実際に働いてるし…。
(b) apache(web サーバー)
FreeBSDではportsから簡単にインストール可能。web サーバーの設定で,cgi を使えるようにしておくことが必要。
(ここの例では,/usr/local/www/data/uber_uploader/cgi-bin/ で cgi が使えるように httpd.conf を書き換え,apache を再起動する)
(c) プログラム言語としてのPerl(以下の4つのモジュールが必要,CGI, FILE::COPY, FILE::PATH, IO::File)
これもFreeBSDなら最初から入っている。モジュールも多分デフォルトで入っていたと思うが,必要ならインストールする。
(d) php
FreeBSDならインストールが必要である。
2010/9 現在では,php5 と php5-extentionsをマルチバイト文字とutf-8対応オプション付きでインストールした。php のインストール後,apache を再起動しないといけない。
ここで Uber-Uploader の処理の流れと対応するファイル名を記そう。
(I) ubr_default_config.php,ubr_ini.php
この2つは設定ファイルである。
(II) ubr_file_upload.php,ubr_file_upload.js
ファイル・アップローダーの入口になるのが ubr_file_upload.php である。
ここでは,ファイル名の指定や,その他入力して欲しいデータ(名前など)の入力があり,
Javascript を使って,入力値のチェックなども行なっている。
Javascript は ubr_file_upload.js に記述されている。
(III) ubr_upload.pl
実際のアップロードの作業をする perl のスクリプトである。
(IV) ubr_finished.php,ubr_finished_lib.php
アップロード完了後の処理をするphpとそこで使われるlibrary用のphpである。
(1) ubr_upload.pl の配置と$TEMP_DIRの指定
cgi が使える領域(/usr/local/www/data/uber_uploader/cgi-bin/)にubr_upload.plを配置する。そして,ubr_upload.pl のパーミッションを実行可能にしておく。
chmod 755 ubr_upload.plかつ,スクリプト(ubr_upload.pl)の先頭行の Perl の path を確認しておく。
#!/usr/bin/perl -wこれは OS によって微妙に異なっているので,確認しておくこと。また,ubr_upload.pl の先頭付近にある変数 $TEMP_DIR を指定する。この際,web browser からアクセス出来ない場所を指定すること。さらに,パーミッションは「777」にしておく。必要に応じて(存在していなければ,)設定したディレクトリを作成しておく。
(例)$TEMP_DIR = '/tmp/ubr_temp/'; (私はこれを選んでいる) $TEMP_DIR = '/var/tmp/ubr_temp/'; $TEMP_DIR = '/usr/home/roger/ubr_temp/';
(2) ubr_upload.pl 以外のファイルの配置
「ubr_upload.pl」以外のファイルを web の cgi が使えない領域(ディレクトリ)に配置する。ubr_upload.pl 以外は全て同じディレクトリがわかりやすいと思う。
(ここの例では /usr/local/www/data/uber_uploader/ )
(3) ubr_default_config.php の設定
ubr_default_config.php の中の変数 $_CONFIG['upload_dir'] (アップロードされたファイル用のディレクトリ,URLではない)を指定する。これは一般にアクセス可能でも不可能でもよい。必要に応じて(存在していなければ,)設定したディレクトリを作成しておく。
(注意)アップロード用のディレクトリのパーミッションは,「777」にするか,
あるいは,group を「www」にしておいて,パーミッションを「771」にする。
そうしないと,apache がアップロードされたファイルをアップロード用のディレクトリに書き込めない。
(例)$_CONFIG['upload_dir'] = '/usr/local/www/data/uber_uploader/uploadfiles/'; (ここでの設定) $_CONFIG['upload_dir'] = '/tmp/ubr_uploads/'; $_CONFIG['upload_dir'] = '/var/www/html/ubr_uploads/'; $_CONFIG['upload_dir'] = '/usr/local/www/htdocs/ubr_uploads/'; $_CONFIG['upload_dir'] = $ENV{'DOCUMENT_ROOT'} . '/ubr_uploads/';
ほかにも,
$_CONFIG['allow_extensions']:アップロード可能な拡張子(zip などを追加するといいかも) $_CONFIG['disallow_extensions']:アップロード不可の拡張子(docやdocx などを追加してもよいかも) $_CONFIG['log_dir']:ログを格納するディレクトリ(実在しないといけない。なければ作成しておく) $_CONFIG['redirect_url']:cgiから見て相対的に指定(デフォルトは相対指定になってないかも) $_CONFIG['path_to_upload']:web からみたアップロードファイル格納場所のURL(相対指定がよい) $_CONFIG['max_upload_size']:アップロードできるファイルサイズ(デフォルトは 5*1024*1024 = 5242880 = 5MB) $_CONFIG['send_email_on_upload']:アップロード後にメールを送信するかどうかのフラグ(1なら送信する) $_CONFIG['to_email_address']:アップロード後のメールの宛先 $_CONFIG['from_email_address']:アップロード後のメールの送信元 $_CONFIG['email_subject']:アップロード後のメールのタイトルなどをアレンジしておくといいと思う。
以下にここでの設定を書いておこう。
$_CONFIG['allow_extensions'] = '(wma|wmv|mpg3|mpg|mpeg|avi|mov|jpg|jpeg|gif|bmp|png|tiff|zip|lha|tar|gz)'; $_CONFIG['disallow_extensions'] = '(sh|php|php3|php4|php5|py|shtml|stm|shtm|phtml|html|htm|js|jsp|asp|aspx|exe|cgi|pl|plx|htaccess|htpasswd)'; $_CONFIG['log_dir'] = '/usr/local/www/data/uber_uploader/uploadfiles/'; $_CONFIG['redirect_url'] = '../ubr_finished.php'; $_CONFIG['path_to_upload'] = './uploadfiles/'; $_CONFIG['max_upload_size'] = 524288000; // Maximum upload size (500 * 1024 * 1024 = 5242880 = 500MB). $_CONFIG['send_email_on_upload'] = 1; // Send an email when the upload is finished. $_CONFIG['to_email_address'] = 'poyopoyo@xxxx.com'; $_CONFIG['from_email_address'] = 'hogehoge@yyyy.com'; $_CONFIG['email_subject'] = 'Uber Uploader';
ほかにも,自分で使いたいので,以下の2つを加えている。
$_CONFIG['my_title'] = 'Poyopoyo'; // title of the web site $_CONFIG['my_title_jap'] = 'ぽよぽよアップローダー'; // title of the web site
(4) ubr_ini.php の設定
ubr_ini.php の中の以下の変数をセットする。注意すべきは ubr_upload.pl を入れておくディレクトリ($_INI['path_to_upload_script'])。 ubr_upload.pl だけはcgiが使えるディレクトリにないといけない。他のものは基本的に uber-uploaderのメインのディレクトリに入れておけばよい。
以下にここでの値を書こう。先頭の path_to_upload_script 以外はデフォルトのままだったりするが…。
(例)$_INI['path_to_upload_script'] = './cgi-bin/ubr_upload.pl'; $_INI['path_to_link_script'] = 'ubr_link_upload.php'; $_INI['path_to_set_progress_script'] = 'ubr_set_progress.php'; $_INI['path_to_get_progress_script'] = 'ubr_get_progress.php'; $_INI['path_to_js_script'] = 'ubr_file_upload.js'; $_INI['path_to_jquery'] = 'jquery-1.3.2.min.js'; $_INI['path_to_block_ui'] = 'jquery.blockUI.js'; $_INI['path_to_css_file'] = 'ubr.css';この他にも,$TEMP_DIR と $DATA_DELIMITER があるが,これらは ubr_upload.pl の中の記述と同一でないといけない。
(5) アップロードされたファイルの格納場所(「ubr_default_config.php」の中の「$_CONFIG['upload_dir']」で指定)に
以下のいずれか一方のファイルを置く(ディレクトリのリストを見られないための処置)
(ここでは /usr/local/www/data/uber_uploader/uploadfiles/)
(a) 「.htaccess」:中身は「Options -Indexes」のみでよい
(b) 「index.html」:中身はなんでもよいが,最低限「<html><body></body></html>」と書いておきましょう。
(6) INSTALLING MULTIPLE CONFIG FILES(複数の設定ファイル)
複数の設定ファイルを使いたい時には,ubr_ini.php の $_INI['multi_configs_enabled'] を1にセットし,ubr_default_config.php 以外に ubr_POYOPOYO_config.php などの設定ファイルを用意しておく。
さらに,ubr_file_upload.php と ubr_link_upload.php の中 if($_INI['multi_configs_enabled']){ に続く部分を以下のようにする。
if($_INI['multi_configs_enabled']){ if($_SESSION['user'] == "tom"){ $config_file = 'ubr_tom_config'; } elseif($_SESSION['user'] == "dick"){ $config_file = 'ubr_dick_config'; } elseif($_SESSION['user'] == "harry"){ $config_file = 'ubr_harry_config'; } elseif($_SESSION['user'] == "sally"){ $config_file = 'ubr_sally_config'; } else{ $config_file = 'ubr_default_config'; } }
以上の設定をすると,最低限 Uber-Uploader が働いて,ファイルをアップロードできる。
ここでちゃんとアップローダーが働くことを確認しておく。これ以降は,それぞれのサイトに合わせたアレンジについて述べる。
(次回に続く)
0 件のコメント:
コメントを投稿