! HikiFarmとは

単一のサイトで複数のWikiを提供するWikiFarmというサービスがあります。こ
れをHikiで簡単に実現するためのCGIがHikiFarmです。WikiFarmができると、
以下のような嬉しさがあります。

* 自力でWikiを設置できない人に、Wikiサイトを貸し出せるようになります
* 同じWikiサイト内に共存させるには無理があるページを、簡単に分離できるようになります
** 違う内容なのに同じページ名が必要、といった名前空間の衝突がなくなります
** 「ジャンル」のような無理な概念を導入する必要がなくなります
** ページデザインをサイトごとに変更できるようになります

HikiFarmは、HikiFarmのCGIの下にディレクトリを作成し、その下にHiki実行
環境を生成することで複数Hikiの管理を行います。例えば、HikiFarmのURLが
以下のような場合、

 http://example.com/hikifarm/

「sample」というHikiサイトを生成すると以下のようなURLになります。

 http://example.com/hikifarm/sample/

! HikiFarm の設置方法

Hikiは好きなところに展開します (例: /home/foo/src/hiki)。
ここを、Hiki インストールディレクトリと呼びます。
このディレクトリはWebから見える必要はありません。

CGIを設置するディレクトリを決め (例: /home/foo/public_html/hikifarm)、
そこをWebサーバの権限で書き込み可能にします。
また、デフォルトのインデックス (ApacheならDirectoryIndex) を、
index.cgiにします (HikiFarmはindex.cgiを自動生成します)。

 # Apacheの場合の.htaccess (またはhttpd.conf) の例
 Options +ExecCGI +FollowSymLinks
 AddHandler cgi-script .cgi
 DirectoryIndex index.cgi

テーマのディレクトリ (theme) も、CGIを設置するディレクトリに置いておくと
良いでしょう。(例: /home/foo/public_html/hikifarm/theme)

データを保存するディレクトリを決め (例: /home/foo/var/hiki)、
そこをWebサーバの権限で書き込み可能にします。
このディレクトリはWebから見える必要はありません。

index.cgiとhikifarm.confは、CGIを設置するディレクトリにコピーします。
index.cgiには実行権限を付け、hikifarm.confは自分の環境に合わせて書き換
えておきます。

次に、hiki.confをHikiインストールディレクトリに置いて、環境に合わせて
書き換えます。このファイルは本質的にhikiconf.rbと同じものですが、
「__my_wiki_name__」というキーワードが生成されたWikiサイト名に置き変わ
るようになっているところがミソです。

また、@mailに「Wiki名@hikifarm.quickml.com」が入っています。更新情報を
[[QuickML|http://www.quickml.com/]]で配信するための設定です。必要に応
じて書き換えてください (配信無用ならnilにする)。

CGIを設置したディレクトリにブラウザからアクセスすれば、HikiFarmの画面
が現れます。

CVS/Subversion バックエンドを用いる場合は、vc-backend-setup.cgi
を実行してください。

!! CVS/Subversion バックエンドについて
Hikifarm では、バージョン管理のバックエンドとして
CVS もしくは Subversion を使うことができます。
CVS を用いる場合は repos_type を 'cvs' に、
Subversion を各 Wiki ごとのリポジトリで使用する場合は repos_type を 'svn' に、
Subversion を Hikifarm 全体で単一リポジトリで使用する場合は repos_type を
'svnsingle' に設定してください。

なお、CVS/Subversion バックエンドを用いる場合は、
Hikifarm 設置完了後に vc-backend-setup.cgi を実行してください。
これを実行しないと、バージョン管理が正しくなされません。

実行方法は、vc-backend-setup.cgi を Hikifarm の index.cgi を設置したディ
レクトリにコピーし、CGI としてアクセスすれば OK です (シェルが使える場合
は、コマンドラインから実行してもかまいません)。
