sourceforgeへのhikiのインストール

まず、sourceforge上では、rubycgiとしてしか使えない。
なのでcgi-binしたに配置する訳だが、cgi-bin配下はいろいろ制限がある。

  • .htaccessが効かない
  • .cgiファイル以外はアクセスできない
  • なので、cssなどのリソースファイルもアクセスできない
  • cgi-bin下で動かすと、出力されるHTML内のリンクがcgi-binからのURLパスになるため、403が発生する。

このため、無理矢理ドメイン直下で動かす必要があり、これにRwriteRuleを使用し実現する。
このとき、hiki.cgiから出力されるリソースファイルは、ドメイン直下からのパスに変換される。
このため、themeなどはhtdocs下に配置する必要がある。

以下にスクリプトをコピー

/home/groups/{GROUP}/cgi-bin

以下、/home/groups/{GROUP}を{ROOT}とする

hiki.cgiの先頭を修正

修正前
#!/usr/local/bin/ruby
修正後
#!/usr/bin/env ruby

hikiconf.cgiを修正

@data_path = '{ROOT}/privates/hiki/data'
@theme_url = '../theme'
@theme_path = '../htdocs/theme'

.htaccessをリネーム(バックアップ)


テーマを移動

cp {ROOT}/cgi-bin/theme {ROOT}/htdocs/theme

データを非公開ディレクトリに移動。ここではprivatesディレクトリを作成

mkdir -p {ROOT}/privates/hiki
mv {ROOT}/cgi-bin/data {ROOT}/privates/hiki/

{ROOT}/htdocsに.htaccessを作成

RewriteEngine on
RewriteRule ^$ /cgi-bin/hiki.cgi
RewriteRule ^index.html /cgi-bin/hiki.cgi
RewriteRule ^hiki.cgi /cgi-bin/hiki.cgi