カテゴリー
FreeBSD

WebDAV with Apache2.4 on FreeBSD

この前から遊んでいるJail祭り。今度は「自宅にWebDAVを作りたい」と思った。
というのも、iPadで使っている読書ソフトの「i文庫HD」は、種々のクラウドストレージに対応しているのだが、メインで使っている「SkyDrive」は、毎秒1MByteしか速度が出ないので、自炊した本1冊を取ってくるのに1分とかかかってしまう。そこで、WebDAVを使って取ってくれば、少なくとも自宅内ではもっと速くなるのではないだろうか、と思ったわけだ。
WebDAV自体は前にも作ったことがあるが、Apacheの一機能として動くので、どうしても設定が他のApacheの設定とごっちゃになってしまうのが気に入らなかった。今回はJail環境なので、贅沢にも「WebDAVのための仮想マシン」を切り出すことにする。

www/apache24をインストール……する前に、まず devel/apr1 をインストールして欲しい。なぜかというと、ここであるHackをしなければならない。WebDAVの認証をダイジェスト認証で行うのだが、どうやら「Jail環境下では、デフォルトのコードではダイジェスト認証がうまく動かない」のである。詳しくはこちらを参照されたい。
Apache 2.4 in a jail with Digest auth
ということで、/usr/local/include/apr-1/apr.h にある「#define APR_HAS_SHARED_MEMORY 1」を0にすること。この作業を行ってから、www/apache24をインストールして欲しい。

(2014/11/24追記: 現在では上の書き換えは必要なくなった模様。したがってaprもapacheもpkgからインストールして良い)

さて設定だ。まずは/usr/local/etc/apache24/httpd.confにある以下の行のコメントアウトを削除して有効にすること。

LoadModule dav_module libexec/apache24/mod_dav.so
LoadModule dav_fs_module libexec/apache24/mod_dav_fs.so
Include etc/apache24/extra/httpd-dav.conf

次に/usr/local/etc/apache24/extra/http-dav.confの途中部分(「# “Dav On” is specified.」と「# The following directives」の間)を以下のように書き換える。

<VirtualHost *:80>
ServerName ibunko.vegalta.org
DocumentRoot "/var/www/html/dav"
DavLockDB /var/spool/lock/dav/Lock
  <Directory "/var/www/html/dav">
    Dav On
    AuthType Digest
    AuthName Vegalta.org-WebDAV
    AuthUserFile "/usr/local/etc/apache24/.htdigest"
    Require user ibunko
  </Directory>
</VirtualHost>

次にロックの設定。

# mkdir /var/spool/lock/dav
# chown www:www /var/spool/lock/dav

ディレクトリ名に注意。DavLockDBに指定するのは「ファイル名のプレフィックス」なので、/var/spool/lock/dav/ に Lock*** というファイルが作成可能なようにする必要がある。

最後ににパスワードの設定。

# cd /usr/local/etc/apache24
# htdigest -c .htdigest 'Vegalta.org-WebDAV' ibunko
(パスワードを入力)
# chown www:www .htdigest
# chmod 640 .htdigest

htdigestにある’Vegalta.org-WebDAV’は、AuthNameで指定した文字列と同じであること。

これで設定は終わり。apacheを起動し、Windowsやi文庫HDでアクセスに成功すれば完了だ。

カテゴリー
アイスホッケー

11/2の試合

  1. Jリーグヤマザキナビスコカップ決勝 浦和vs柏: 最大の見所はバックスタンドのコレオグラフィー。Jリーグの押しつけが勝つのか? 浦和/柏サポの無視が勝つのか?
  2. ジャパンvsオールブラックス: ハカ聞きてぇ。そしてハカ終わったら帰る(おい
  3. 関東大学野球早慶戦: 特に興味なし。まぁ大学のレベルとしては俺も同レベルと思っていいのかな?(一応旧帝)
  4. 東京体育館: 極真会館の空手大会 国立で荒れてたら鎮圧に。
  5. 秋の高校野球東京大会: バッファに使われそう
  6. JFL横河武蔵野FC vs Honda FC: 目標は男の晩ご飯賞です(試合はどうした)
  7. アイスホッケー 日光アイスバックス vs ハルラ(韓国) とにかく勝て。食らいついてるのは分かる。だから勝て。

昔からの応援の皆さんも、初めて応援に行かれる方も。明日の応援よろしくお願いします。

カテゴリー
未分類

パスタ鍋

電子レンジがない我が家。
今ちょっと金欠なので、朝と夜はパスタを食べている。
で、つきっきりでゆでるのがめんどくさいなぁと思っていたら、こんな調理器具を発見した。
MPT-900 パスタタワー/電気式パスタクッカー
これでお湯を沸かし、頃合いを見てパスタを投入し、10分後(放置OK)にはパスタのゆであがり。
これを良としないめんどくさがり屋がおろうか?

早速購入。
1ヶ月ほど使ったのだが、致命的な問題が発生。
強弱スイッチが馬鹿になって、ゆでてる間も吹きこぼれ寸前(強)に。
かとおもって何回か叩くと、 今度はお湯も沸かなくなる(低か断線?)

ということで、現在修理中です。

で、修理の間色々調べたのだが、今の家の環境にはこれがあればいいんじゃね? というのは
スリースノー・シンプルバスケット
IHのコンロと、それに対応する鍋があるので、これを中に入れれば湯切りも簡単なはずだ。タワーが次回こわれたら買おう。

カテゴリー
iPhone

iPhoneのバッテリーを交換した

iPhoneのバッテリーが1時間に20%減るのでおかしいと思い、Apple Storeに持っていった。

事前の情報では、「ほぼ全ての場合、本体ごと交換」「Genius BarのMacに診断用ソフトが入っていて、USBで繋いで確認してくれる」という事だったので、バックアップを取ってから行った(結局要らなかった。後述)。

Genius Bar自体には慣れているので、Appleのサイトで予約した後、渋谷のApple Storeへ。

順番になると、店員さんがおもむろに私のiPhoneを店内無線LANにつなぎ始める。「?」と思ったら、近くのMacBookでなにやらソフトを立ち上げて、そこに表示しているURLをiPhoneのSafariで開き始めた。なるほど、今はこういう仕組みなのか。

「じゃぁ見ますねー。……そうですね。バッテリが正常に動いていないので交換になります。その場合iPhoneを開けますがよろしいですか?」

おや? 最近はバッテリのみの交換というのもアリなのか? もちろん承諾すると、

「では30分後に取りに来て下さい」

30分後に行くと、本当にバッテリーだけ交換されたようで、キズキズがそのままのiPhoneが(苦笑)。

ということで、最近は本体ごとではなくて、バッテリのみの交換のようだ。

カテゴリー
FreeBSD

VIMAGE + JailなマシンをIPv6対応にしよう

うちはIPv4グローバルアドレスが1つしかないので、いくらJailで仮想マシンを一杯作っても、他人に提供できない。よろしい、ならばIPv6だ。「v6! v6! v6!」

前提条件として、既にIPv6が動いているネットワークであることとする。もしまだIPv6が動いていないネットワークだったら、OCN IPv6サービスでも使ってなんとかすること。Jailの親マシンをIPv6対応にする作業は他に優秀な文献がたくさんあるので割愛する。

/usr/local/etc/ezjail/test01(抜粋)

export jail_test01_exec_prestart0="ifconfig epair1 create up"
export jail_test01_exec_prestart1="ifconfig vswitch0 addm epair1a"
export jail_test01_exec_poststart0="ifconfig epair1b vnet test01"
export jail_test01_exec_poststart1="jexec test01 /sbin/ifconfig epair1b 192.168.0.101/24"
export jail_test01_exec_poststart2="jexec test01 /sbin/route add default 192.168.0.1"
export jail_test01_exec_poststart3="jexec test01 /sbin/ifconfig epair1b inet6 accept_rtadv up"
export jail_test01_exec_poststart4="jexec test01 /sbin/rtsol epair1b"
export jail_test01_exec_poststop0="ifconfig epair1a destroy"

poststart3は、インターフェースに対して「IPv6のルータ広告(RA)パケットを受け入れますよ」と指示を出す。これで、このインターフェースはルータからRAパケットが来たら、自分自身のアドレスやらデフォルトルータやらを良きに計らって設定してくれる。
poststart4は、RAパケットを待つコマンド。

で、なんとこれで終わりだ。Jailマシン側の設定は必要ない。
「/usr/local/etc/rc.d/ezjail stop test01」「/usr/local/etc/rc.d/ezjail start test01」と実行すれば、晴れて君のJailマシンもv6世界の一員だ。