mobio は常時ネットワークに繋がれていないし、外出先などからウェブを見たくなったとき、PHS を使ってインターネットに接続している。
新しい情報を見たい場合にはインターネットに接続するのはしかたないけど、さっき見たばかりのページが接続を切ったとたん見えなくなるのはかなしいので、モバイル環境向けのプロキシサーバーを探してみると、WWWOFFLE(World Wide Web Offline Explorer) がよさそう。
オンラインモードの時にキャッシュに貯めたデータをオフラインモードで手軽に読むことができて、オフラインモードの時にアクセスされたキャッシュに無いページは次にオンラインモードになったときに自動的にキャッシュに取り込んでくれるみたい。
オートダイアルモードにしておくと、キャッシュのデータを使いつつキャッシュに無い場合には自動的にダイアルアップしたり、オフラインモードでは DNS にさえ問い合わせに行かないので、モバイルでなくても、"非"常時接続環境では Squid よりも便利かもしれない。※1
でも、いつでも必要なページは potato, wget, httpdown等を使って mobio にコピーを置いておきましょうね :p※2
お手軽に ports でインストールしてしまいます。
# cd /usr/ports/www/wwwoffle # make # make install
サンプルをコピーしてコンフィグレーションファイルを作成・ 編集します。
デフォルトのままで実用に耐える設定になっているので、そのままでも十分動くのですが、一応一通り目を通して自分好みにしましょう。
私が書き換えたところは以下のとおり。
これは、環境や使い勝手に合わせていろいろ書き換えてみてください。
# cp /var/spool/wwwoffle/wwwoffle.conf.default /var/spool/wwwoffle/wwwoffle.conf # vi /var/spool/wwwoffle/wwwoffle.conf stylesheets = yes enable-modify-html = yes add-cache-info = yes anchor-cached-begin = <font color="#00B000"> anchor-cached-end = </font> anchor-requested-begin = <font color="#B0B000"> anchor-requested-end = </font> anchor-not-cached-begin = <font color="#B00000"> anchor-not-cached-end = </font> anon-password = [my mail address] max-size = 100
注意として、wwwoffle はウェブから設定やコントロールが行えるようになっていますので、外部からのアクセスは制限しておきましょう。私の自宅では Squid が動いていて、デスクトップから使うことはまずありえないので、一切他からのアクセスはできないようにしています。
ここまでの設定が終わったら、一度起動してテストしてみます。
/usr/local/etc/rc.d/ に起動スクリプトが作られているので、簡単に起動できます。
# /usr/local/etc/rc.d/wwwoffled.sh wwwoffled
ウェブブラウザ (netscape navigator等) から http://localhost:8080/ にアクセスしてみる。
wwwoffle のウェルカムページが表示されればOK。※3
ウェブブラウザのディスクキャッシュを使わないように設定※4し、プロキシ設定を
HOST: 127.0.0.1
PORT: 8080
に設定します。
インターネットに接続して、wwwoffle をオンラインモードにします。
# /usr/local/bin/wwwoffle -on
ウェブブラウザで適当にウェブサイトを閲覧してから、wwwoffle をオフラインモードにします。
# /usr/local/bin/wwwoffle -off
オンラインモードで閲覧したページがオフラインモードで表示されればOK。
ネットワークに接続するたびに、オンライン・オフラインモードを切り替えるのは面倒なので、自動的に切り替えるように設定してしまいましょう。
基本的には、iij-ppp を使うならば /etc/ppp/ppp.linkup, /etc/ppp/ppp.linkdown に設定し、Ethernet 経由の場合には /etc/pccard_ether, /etc/pccard_ether_remove に設定します。
PHS からのダイアルアップには iij-ppp を使っているので、/etc/ppp/ppp.linkup にダイアルアップ接続時の設定をします。
私は PHS を使っているので PHS と書いていますが、iij-ppp を使うならばモデムでも同じことです。
# vi /etc/ppp/ppp.linkup home: shell /usr/local/bin/wwwoffle -on shell /usr/local/bin/wwwoffle -fetch
home: は各自の接続先ラベルで読み替えてください。
ここでは、オンラインモードにするついでに取得要求リストにあるデータを取得するようにしています。(-fetch)
次に /etc/ppp/ppp.linkdown でダイアルアップ切断時用の設定をします。
# vi /etc/ppp/ppp.linkup home: shell /usr/local/bin/wwwoffle -off
これでPHS からのダイアルアップ接続が確立したときに自動的にオンラインモードになり、切断するとオフラインモードに変更されるようになりました。
自宅や会社からは Ehernet を使ってルータ経由でインターネットに接続しているので、ネットワークカードが差し込まれたときにも wwwoffle のモードを変更しなければいけません。
FreeBSD 3.4-RELEASE & PAO では /etc/pccard.conf から呼び出される /etc/pccard_ether がネットワークカード挿入時の初期設定をしています。今回の場合はこのファイルを編集して、ファイル末尾にモード切替用のコマンドを埋め込んでしまいましょう。(もっといい方法あるのかなぁ)
# vi /etc/pccard_ether fi if [ -x /usr/local/bin/wwwoffle ]; then /usr.local/bin/wwwoffle -on /usr.local/bin/wwwoffle -fetch fi fi
同じように、ネットワークカードを外したときにもモードを切り替えるようにしておきましょう。
取出し時のスクリプトは /etc/pccard_ether_remove です。
# vi /etc/pccard_ether_remove fi if [ -x /usr/local/bin/wwwoffle ]; then /usr.local/bin/wwwoffle -off fi fi
http://localhost:8080/ から参照できる WWWOFFLE の設定ウェブページは本来英語です。これを、総てではありませんが Toshihiko ARAI さんが日本語化してくださっています。感謝しつつ使わせていただきましょう。
日本語翻訳された html ファイルは 末尾参考文献にもある WWWOFFLE を FreeBSD にインストール で公開されています。
まずは、今あるオリジナルを退避させておきます。
# mv /var/spool/wwwoffle/html/Welcome.html /var/spool/wwwoffle/html/Welcome.html.orig # mv /var/spool/wwwoffle/html/messages /var/spool/wwwoffle/html/messages.orig
取得方法はウェブブラウザからでも何でもかまいません、ここでは fetch コマンドを使って取得します。
Welcome.html と messages.tar.gz を展開したものを、/var/spool/wwwoffle/html/ に置くだけです。
# cd /var/spool/wwwoffle/html/ # fetch http://www.linkclub.or.jp/%7Eclover/wwwoffle/Welcome.html # fetch http://www.linkclub.or.jp/%7Eclover/wwwoffle/messages.tar.gz # tar zxvf messages.tar.gz
これで設定ページが日本語化されました。
ウェブブラウザのプロキシ設定をしておけば、オンラインモードで閲覧したページはキャッシュに保存され、オフラインモードでキャッシュに溜まっているページを閲覧することが出来ます。
キャッシュに貯めておきたいページは、一時的なものなら 設定ページの /refresh-options/。常に最新のものをキャッシュしておきたい場合には /monitor-options/ のページで登録しておけば、次回の取得時に自動的に取得してくれます。
今すぐ取得したい場合には、設定ページの /control/ から fetch のボタンを押すとすぐに取得が始まります。
WWWOFFLE は簡易ウェブサーバーにもなっていて、ローカルの html ドキュメントを読むのに便利です。たとえば FreeBSD Handbook の場合ならば
# ln -s /usr/share/doc/ja/books/handbook /var/spool/wwwoffle/html/local/handbook
としておくと、http://localhost:8080/local/handbook/ で読めるようになります。
まー、ファイル直接指定でもいいんですが、場所を全部覚えてられないので…。