この文章は WFMver1.23以降ではWin対応済みなので意味がありません。無視してください

2000/01/09 現在

Windows版WFMへの道

編集者 : 森下 幸治 (kouzzy)

■WFMをWin系OSで動作させるには?

WFMはWin系OSでも動作させる事は可能です。ただし、元ファイルはUNIX系OSのために書かれている関係上若干の修正が必要となります。こちらで実験的にWin系OSで動作させるための修正を行なってみました。こちらで試験した環境は以下の通りです。

OS : Windows98
Web-server : apache1.3.12 (Win32)
Perl : ActivePerl Build 522 Built under MSWin32

基本的にWin系OSでは95/98/NTの違いはあれど、環境に依存する事はほとんどないでしょう。同じ様に作業すれば若干環境が変わっていても動作するのではないかと思われます。(試した事はないので分かりませんが ^^;)
またこの修正はWFM ver1.21 を対象としています。しかしバージョンに依存する事 あまりないでしょう。以前のバージョンでも(若干の違いはあれど)ほとんど同じ事をするだけでWindows系OSへの移植は可能だと思われます。


■unix like toolsのインストール:

WFMではディレクトリの取得等は外部のツールに頼っています。その関係上WFMから利用しているツール(相当品)をインストールしなければなりません。WFMが利用しているツールはUNIX系OSでは標準で準備されている ls と du と rm の3つコマンドです。最低それらのコマンドは準備してください。

幸い UNIX like tools としてそれらのコマンドはフリーソフトとして公開されています。次のURLよりダウンロードして準備することができるでしょう。

http://www.asahi-net.or.jp/~bi3t-aoym/ またこちら(uxtl412c.tgz)からダウンロードしてください。


また WinNT/2000 の場合は http://www.piedey.co.jp/softs/ntuxtl.html
上記のURLにあるものを利用するとLFNの利用ができるようです。
現在(2001/01/16)ベータ版なので注意なさってください。

ダウンロードしたなら展開後、ls/du/rm をパスの通った場所へコピーしてください(それらのコマンドは bin ディレクトリに入っています。)もしくは main.cgi と同じディレクトリへ置く事もできます。(以下の例では main.cgi と同じディレクトリへコピーしている)


■main.cgi の書き換え(6ヶ所)

Win系OSで動作できるように main.cgi を次のように書き換えてください。但し、main.cgi と同じディレクトリに ls/du/rm コマンドをおいた場合の事をここでは書いています。もしパスが通っていたり別のディレクトリへそれらのコマンドをコピーしている場合はそのパスを書かなくてはなりません。

1行目は
perl のあるパスへ変更 (例: #!C:\perl\bin\perl )

174行目
`.\\rm -rf $usedir/$val`;

462行目と463行目を以下のように変更
$dirsize = `.\\du -s $basedir`; # 所有ファイルサイズ取得
@filelist = `.\\ls -Fla $usedir`; # 仮想ディレクトリ取得

487行目と520行目を以下のように変更(2ヶ所)
($pmt,$siz,$tsm,$tsd,$tst,$dmy,$fn)=split(/ +/,$filename);
上でうまくいかない場合は、次のようにした方が良いかもしれません。(Win/NT)
($pmt,$siz,$tsm,$tsd,$tst,$fn)=split(/ +/,$filename);

もしバージョンが違っていて行数が違う場合でもあまり困る事はないでしょう。変更の部分は ls, du, rm の各コマンドパスのところと $filename を split しているところを変えれば良いだけです。

■upload.cgi の書き換え(4ヶ所)

次に upload.cgi を書き換えますが、基本的に改行コード等の違いを吸収するだけになっています。WFM ver1.22 以降では既に修正を施してありますので、この作業は1行目以外は作業不要となります。

1行目は
perl のあるパスへ変更 (例: #!C:\perl\bin\perl )

4行目に次の行を挿入(if文の前に)
binmode STDIN;

そして2ヶ所ある open OUTPUT の次の行に次のコマンドを挿入
binmode OUTPUT;


これらの修正を行なう事で Win系OSでWFMが利用出来るようになるはずです。もし動作しないようでしたら連絡くださると幸いです。
Copyright(C) Kouji Morishita. All right reserved.
森下幸治 <kouzzy@mocha.ocn.ne.jp>