Wyvern は、竜目飛竜科の一種で、 体長7メートルから13メートル、コウモリのような翼と先端に毒の刺尾をもつ2本足の ドラゴンである。一般的には飛竜として知られている。肉食で、口から炎を吐く。 西欧から北欧に分布。14世紀にスコットランドで目撃されたのが最後。 同種に Lindwurm がいる。
というのは、さておき
Wyvern とは、 Apache などと同様の ウェブサーバと呼ばれるソフトウェアです。
自分のシステムに導入することで、個人で手軽に自分のウェブサーバを構築できます。 また、実行サイズが小さく軽いので、 組み込みウェブサーバとしても利用可能です。
プログラムコードも小さいので独自のウェブサーバに改造するのも良いでしょう。 その他、発想次第でいろいろ応用はあると思います。
次のような人には向いているかも…(^.^)
次の URL で入手できます。
http://www.MysticWALL.com/software/wyvern/wyvern.html
domain.sh 中の #! /bin/sh を #! /usr/local/bin/bash のように bash に変更すると正しく動作します。
もし、bash がインストールされていない場合は、次のように domain の前に ^ を追加してください。
domain=`grep ^domain $conf | awk '{print $2}'`; を
domain=`grep \^domain $conf | awk '{print $2}'`; に変更する。
Wyvern では、サブディレクトリのエイリアスはサポートしておりません。
上記の場合は、
ScriptAlias /cgi-fml/ /usr/local/wyvern/cgi-bin/fml/
とすると良いでしょう。
Wyvern では、デフォルトで不正な中継をされてきたと思われるアクセスを拒否します。 これは、リクエストに X-Forwarded-For ヘッダが付き、 その値が unknown の場合に起きます。 このとき、ErrorLog に記録が残ります。
もし、unknown の場合でもアクセスを許可したい場合は、 ソースコード(request.c)の 764 行目のコメントを外して再コンパイルおよび 再インストールしてください。
/*#define LOGGING_ONLY_X_FORWARDED_FOR_UNKNOWN 1 */
上記の define 文を定義してコンパイルした場合は、アクセス拒否を行いません。 また、ログは AccessLog に記録されます。
dup2 関数が期待通りの動作をしていないような気がします。 現在、原因を究明中です。
実装しておりません。仕様です。
FreeBSD では、 パスワードに DES を用いた暗号化と MD5 を用いた暗号化の2通りあります。 デフォルトでは、MD5 による暗号化が行われます。
しかしながら、 Wyvern のデフォルトの管理者のパスワードは DES で暗号化されています。 そのため、MD5 による暗号化ではうまく認証できません。
その場合は、.admin_passwd_md5を利用してください。 .admin_passwd_md5 はデフォルトでは、 /usr/local/wyvern/etc にインストールされます。
Example:
% mv -i .admin_passwd .admin_passwd.org
% cp -p .admin_passwd_md5 .admin_passwd
openssl-0.9.5 は FreeBSD 2.2.8 上でバグがあるようです。 最新の OpenSSL を利用してください。 openssl-0.9.5a では大丈夫です。
現時点では、Netscape Communicator 4.72 での動作確認しか行っておりません。 Internet Explorer のローミング時のサーバとのプロトコルが不明なため、 対応予定はありません。
「ローミングユーザ」の「ファイル選択」でチェックマークを付けた後に、 「確認」ボタンを押してから、次の設定メニューを選択しましょう。 「確認」ボタンを押さずに他のメニューを選択すると、 チェックマークが有効にならないようです。
また、<atsushi-ohhata@k-giken.co.jp>さんからの次のような補足情報を いただいております。
Netscape Communicator を guest で起動して、 「終了時にこのプロファイルを削除する」にチェックマークをつけて使用した場合、 上記の「ファイル選択」が有効になりません。 これは、起動中のプロファイルは "prefs.js" に記録されるが、 ローミングサーバに戻されるのは "liprefs.js" だけであり、 "prefs.js" は終了時と同時に削除されるからです。