nekoieの日記: publicfileはファイル情報に敗北する。
LAN内での簡易なファイル移動手段として、publicfileを試してみる事にする。
publicfileには、ucspi-tcpとdaemontoolsが必要らしい。
daemontoolsは既に導入済。
まずは、ucspi-tcpを導入する事に。
$ wget http://www.emaillab.org/djb/tools/ucspi-tcp/ucspi-tcp-0.88.tar.gz
$ tar xvfz ucspi-tcp-0.88.tar.gz
$ cd ucspi-tcp-0.88
$ make
$ su
# make setup check
以上。
引続き、publicfile。
$ wget ftp://ftp.jp.qmail.org/qmail/publicfile-0.52.tar.gz
$ tar xvfz publicfile-0.52.tar.gz
$ cd publicfile-0.52
$ make
$ su
# make setup check
アカウント作成。
# groupadd pfile
# useradd -g pfile -d / pfile
# useradd -g pfile -d / pfilelog
# vipw
特に問題か無い事を確認。
publicfileのconfigureプログラムを実行。
今回はインストールマニュアル通り、/に直接作成する事にする。
# /usr/local/publicfile/bin/configure pfile pfilelog /public tinymetal 192.168.0.9
とりあえずtcpの80番で既にapacheを動かしているので、publicfileのhttpdは8088番で動かす事に。
# vi /public/httpd/run
exec envuidgid pfile softlimit -o20 -d50000 tcpserver -vDRHl0 -b50 -c100 0 8088 /usr/local/publicfile/bin/httpd /public/file
試しに動かしてみる。
# ln -s /public/httpd /public/ftpd /service
動いてるのを確認。
# netstat -nl
可。
$ w3m http://tinymetal:8088/
404 Nof Found。可。
$ ncftp tinymetal
ログイン可能。ファイルは一つもないものの。
ファイルを置いてみる。
# echo 'boeboe' > /public/file/0/boeboe.txt
# chmod a+r /public/file/0/boeboe.txt
見る。
$ w3m http://tinymetal:8088/
何も無い。autoindex等と言う機能は、djbには無し。ウム。
$ w3m http://tinymetal:8088/boeboe.txt
見事に、boeboeが表示される。
尚、/public/fileの中には0以外に、192.168.0.9とtinymetalというファイルが存在していた。この二つは0へのシンボリックリンク。これを削除し、新たに通常のディレクトリを作成すれば、ヴァーチャルホスト機能となるのであろう。多分。
次。ftp。
$ ncftp tinymetal
# ncftp / > ls
+i769.193139,m1014353975,r,s7, boeboe.txt
ううむ。boeboe.txtはともかく、最初のファイルは何なのだ!?
ncftpがpublicfileのls出力の解析に失敗しているのだろうか。
# ncftp / > bye
$ ftp tinymetal
# ftp> ls
+i769.193139,m1014353975,r,s7, boeboe.txt
矢張り同じである。
とりあえず、もう一つファイルを増やしてみる事にする。
# touch /public/file/0/b
またftpログインを行い、ls。
+i769.193133,m1014354543,r,s0, b
+i769.193139,m1014353975,r,s7, boeboe.txt
増えた。
一番最後のセミコロンの前の文字がファイルサイズだと思われるところから、矢張りlsの出力結果の解析に失敗しているのであろう。
もしかして、日本語で日付をかえしていたりするのであろうか?
# vi /etc/profile
export LANG=C
#export LANG=ja_JP.eucJP
#export LC_CTYPE=ja_JP.eucJP
$ vi .profile
export LANG=ja_JP.eucJP
export LC_CTYPE=ja_JP.eucJP
# svc -t /service/ftpd
試す。
$ ftp tinymetal
# ftp> ls
+i769.193133,m1014354543,r,s0, b
+i769.193139,m1014353975,r,s7, boeboe.txt
駄目か。
大元のsupervice自体を再起動しないと、superviceから環境変数を引き継いでいたりするのだろうか?
再起動。
しかし、同じ。
ウボア。
anonymous ftpを提供するのに使う事も考えていたのだが、コレでは駄目だ!
‥‥もしかして、日本語なlocaleの環境変数な状態でmakeしたのがまずかったのだろうか。しかし面倒なので今日はここまで。
publicfileも停止させる。
# touch /service/down
# rm /service/ftpd /service/httpd
# svc -x /public/ftpd
# svc -x /public/ftpd/log
# svc -x /public/httpd
# svc -x /public/httpd/log
# svc -d /public/ftpd
# svc -d /public/ftpd/log
# svc -d /public/httpd
# svc -d /public/httpd/log
# rm /service/down
publicfileはファイル情報に敗北する。 More ログイン