! 動作環境

Ruby 1.6.4以降が必要です。
Ruby 1.8系でも動作します。

OSはWindows系、Linux系で動作確認をしていますが、
Ruby 1.6.4以降が動作する環境であれば動作するように設計しています。

WWWサーバはIIS、Apache、AN HTTP Serverで動作確認をしていますが、
CGIが使用できるWWWサーバであれば動作するように設計しています。
- mod_rubyでも動作します。
- スクリプトをリロードしないCGIでも動作します。

!! Rubyのインストール

VikiWikiはRubyというスクリプト言語で記述されています。
VikiWikiを使用するにはRubyをインストールする必要があります。

VikiWikiはプラットフォーム非互換のインタフェースは使用していないので
Rubyをサポートしているどのプラットフォームでも動作します。
Windowsの場合、mswin32版、cygwin版、migwin版が存在します。

VikiWikiの開発はmswin32版を使用しています。

!! WWWサーバのインストール

VikiWikiはCGIによるアプリケーションです。
CGIを使用するにはWWWサーバが必要です。

- Apache
  もっともポピュラーなWWWサーバです。
  mod_rubyでの処理の高速化も図れます。
  Windowsにも移植されていて簡単にインストールできますが、
  初心者にはhttpd.confを編集するのが難しいかもしれません。

- IIS
  Windows Serverに標準で添付されているWWWサーバです。
  Windowsしか選択できない（しなければならない？）環境に適しています(笑)。
  初心者でもCGIの設定は比較的簡単にできると思います。
  VikiWikiはIISでも問題なく動作します。

- AN HTTP Server
  個人が開発しているWindowsで動作するシンプルなWWWサーバです。
  VikiWikiの開発はノートなので動作が軽いこのAN HTTP Serverを使用しています。

!! CGIの設定

CGIの設定はWWWサーバごとに異なります。
IISの場合、rubyのオプションに -Ku (utf-8を使用する場合)を忘れないようにしてください。

--------------------------------------------------------------------------------

! セットアップ

!! VikiWikiのセットアップ（レンタルサーバなどにインストール）

通常、LinuxやFreeBSDなどが主流であるのでそれを前提に説明します。
+ setupをダウンロードし、解凍します。setup.cgiファイルができます。
  | Setup     |http://vikiwiki.net/setup.zip
+ VikiWikiをダウンロードします。
  | VikiWiki  |http://vikiwiki.net/vikiwiki.zip
  | VikiWiki2 |http://vikiwiki.net/vikiwiki2.zip
+ tDiaryのテーマをダウンロードします。
+ これらのファイルをサーバにアップロードします。
  FTPツールで以下のように設置します。
  ここではwwwディレクトリがCGI実行可能ディレクトリとしています。
  {{{
  /home/hoge/www
  setup.cgi
  vikiwiki.zip
  xxx.tar.gz
  }}}
+ setup.cgiに実行権をつけてください。
+ ブラウザからsetup.cgiにアクセスします。
+ setup.cgiのフィールドに入力していきます。

!! VikiWikiのセットアップ（グループウェアや個人用として導入）

!!! エンコーディング

VikiWikiのデフォルトで使用可能なエンコーディングはUTF-8だけです。
SJISまたはEUCを使用したい場合は、Uconvを入手してください。
mswin32版のUconvはRuby 1.6用のものとRuby 1.8用のものがあります。

デフォルトのエンコーディングを変更したい場合、ここの
ディレクトリで以下のように実行します。
:SJISの場合:{{ruby tool/unkf.rb -Us "**/*.txt" "**/*.r*"}}
:EUCの場合:{{ruby tool/unkf.rb -Ue "**/*.txt" "**/*.r*"}}

!!! UNIX系サーバでセットアップ

レンタルサーバなどにインストールする方法とほとんど同じです。

!!! Windows系サーバでセットアップ
代表的なWWWサーバには以下があります。
CGIでRubyを使用できるようにしてください。
- IIS
- Apache
- AN HTTP Server

セットアップまでの手順は以下のとおりです。
+ VikiWikiをダウンロードします。
  | VikiWiki  |http://vikiwiki.net/vikiwiki.zip
  | VikiWiki2 |http://vikiwiki.net/vikiwiki2.zip
+ ダウンロードしたファイルを解凍します。
+ サーバ上の任意のディレクトリに設置します。
+ setup.cgiを設置します。
  解凍したディレクトリの直下のsetup.cgiというファイルを
  CGIが実行できるディレクトリへコピーします。
  IISの場合、Rubyに割り当てた拡張子に変更する必要があります。
  AN HTTP Serverの場合、#!のパスを認識するようにしてください。
+ ブラウザからsetup.cgiにアクセスします。
+ setup.cgiのフィールドに入力していきます。
  Windowsサーバの場合、パスの指定に気をつけてください。
  特にRubyのパスが /usr/bin/env ruby となってるため、
  これを正しいパスに変更してください。
  パスは \ 区切りで指定しても / に変換します。

テーマを変更する場合、以下の手順で実施してください。
+ tDiaryのテーマをダウンロードします。
+ ダウンロードしたファイルを解凍します。
  tar.gz形式ですが、最近では多くの解凍ツールで対応しているはずです。
+ setup.cgiで作成されたディレクトリ配下のthemeディレクトリにコピーします。
  theme/hoge/hoge.cssになるように格納してください。
+ CGIファイルを編集します。
  setup.cgiで作成されたCGIファイル（デフォルトはvikiwiki.cgi）を
  エディタで開きます。
  LF改行で作成されているので、LF改行に対応したエディタを使用してください。
+ THEMECSSの値を変更します。
  テーマ名だけ指定すればいいです。
  {{{
  "THEMECSS"=>"hoge",
  }}}
+ 再度アクセスしてテーマが変わっていることを確認できれば終了です。

!! 対話式のセットアップ
以下のコマンドを実行することで対話式にセットアップをすることが可能です。
{{{
ruby -Ku setup.cgi
}}}

--------------------------------------------------------------------------------

!! 動作確認

作成されたCGIスクリプトをエディタで開き、設定されたパラメタを確認してください。
特に''SAFE''の値は使用する環境にしたがって変更するようにしてください。
各パラメタの説明はparameter.txtに記載されています。

Linuxの場合、作成されたCGIスクリプトに実行権をつける必要があります。
WWWサーバの設定が完了していればブラウザからアクセスできます。
TopPageが表示されるので編集リンクをクリックし、内容を更新してください。

DirectEditの場合、指定した拡張子に対応するアプリケーションで開きます。
更新し保存したら最新リンクをクリックするとHTMLが更新されます。

--------------------------------------------------------------------------------

!! アクセス制限

WWWサーバによってアクセス制限の方法が異なります。
VikiWikiでアクセス制限（読み取り禁止）をすべき
ディレクトリおよびファイルは以下のようになります。
ディレクトリかファイルのどちらかで制限をかければいいです。

||拒否ディレクトリ ||data、etc、text
||拒否ファイル     ||passwd、session、*.txt（ページの拡張子）、*.diff、*~

または、許可するファイルを指定する方法もあります。

||許可ファイル     ||*.cgi（CGIの拡張子）、*.html、*.xml、*.css、画像ファイルの拡張子

代表的なWWWサーバは以下のように制限をかけてください。
なお、.htaccessはApache以外は不要なので削除してかまいません。

- Apache
  masterディレクトリに.htaccessを用意しました。
  setup.cgiを実行するとコピーされます。
  拡張子をデフォルトの.txt以外にした場合、.htaccessの内容を修正してください。
  WikiFarmにもこの.htaccessは適用されるのでアクセス制限を個別にかける必要はありません。
- IIS
  data、etc、textのプロパティでアクセス許可の読み取りのチェックボックスを外します。
  WikiFarmを作成した場合、アクセス制限を引き継がないためWikiFarmごとに
  アクセス制限をかける必要があります。

--------------------------------------------------------------------------------

!! ユーザ登録

form認証およびvikiwiki認証では管理者アカウントを登録する必要があります。
その他の認証ではこの操作は不要です。
1. SecurityPageを開きます。
2. setup.cgiで指定した管理者アカウントを登録します。

--------------------------------------------------------------------------------

!! CGI設定

認証がnone以外の場合、AdminPageでCGI設定を変更することができます。
項目のないパラメタはCGIスクリプトファイルを直接変更する必要があります。
1. AdminPageを開きます。
2. 認証が必要な場合は認証します。
   認証がnoneになっている場合、認証を要求されずアクセス拒否されます。
3. ''CGIの設定を変更する''を選択します。
4. パラメタを変更し設定の登録をします。

--------------------------------------------------------------------------------

!! 注意事項

* ファイルのアップロードをするには、以下のどちらかの対処が必要です。
  + /tmpディレクトリを作成する
  + Tempfile添付ライブラリを修正する
    以下のデフォルトのtmpdirの処理を変更する。
    {{{
    def initialize(basename, tmpdir=ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp')
        if $SAFE > 0 and tmpdir.tainted?
          tmpdir = '/tmp'
        end
    }}}
    ↓
    {{{
    def initialize(basename, tmpdir=ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp')
        if $SAFE == 1 and tmpdir.tainted?
          tmpdir.untaint
        elsif $SAFE > 0 and tmpdir.tainted?
          tmpdir = '/tmp'
        end
        umask = File.umask(0177)
    }}}

--------------------------------------------------------------------------------

!! リンク

* VikiWiki
  http://www14.org1.com/~mopia/dynamic/vikiwiki.cgi
* Ruby
  http://www.ruby-lang.org/
* Ruby - mswin32
  http://www.dm4lab.to/~usa/ruby/
* Uconv
  http://www.yoshidam.net/Ruby_ja.html#uconv
* Apache
  http://www.apache.jp/
* AN HTTP Server
  http://www.st.rim.or.jp/~nakata/

