! 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 です (シェルが使える場合 は、コマンドラインから実行してもかまいません)。