VikiWiki-WEBrick お試しパッケージ

Z80-OOLONG (NAKATSUKA, Yukitaka)


はじめに

これは、 mopia さんが作成された Wiki Engine である VikiWikiWEBrick 上で動作させるためのパッケージです。

これにより、 CGI 対応の HTTP サーバのインストールや設定を行なうことなく、 Ruby だけで VikiWiki サーバを起動することが出来ます。

このパッケージは、例えば次のような方々にお勧めです。

インストール

ここでは、このパッケージのインストール方法について述べます。

インストールに先だって、あらかじめ WEBrick をインストールする必要があります。但し、 1.8 系の ruby を使用する場合は、 WEBrick は既に標準添付されていますので、インストールする必要はありません。

また、もし VikiWiki サーバの入出力用の漢字コードとして euc-jp や shift-jis を使用する場合は、それに加えて uconv をインストールする必要があります。

そして、このパッケージには VikiWiki のソースコードの zip アーカイブである vikiwiki.zip が必要ですが、これはインストール中において自動的にダウンロードされますので、あらかじめ用意する必要はありません。

インストールを行うには、このパッケージの tarball を展開後、展開先のディレクトリに移動して、コマンドラインから次のように入力します。あらかじめ vikiwiki.zip を用意した場合は、前もって vikiwiki.zip を展開先のディレクトリの下の src ディレクトリに置いてください。

  $ ruby ./setup.rb config
  $ ruby ./setup.rb setup
  $ su
  # ruby ./setup.rb install

このパッケージはインストーラとして、 青木峰郎さんsetup.rb を使用しています。

実際に setup.rb で指定できるオプション等については、 setup.rb のオンラインマニュアルを参照してください。

また、このパッケージでは setup.rb 標準のオプションの他、以下のオプションが指定できます。

--wgetprog=[path]

インストール時に vikiwiki.zip をダウンロードするための wget プログラムへのパス

--unzipprog=[path]

vikiwiki.zip を展開するための unzip プログラムへのパス

--nkfprog=[path]

漢字コード変換のための nkf プログラムへのパス

--encoding=[euc-jp|shift-jis|utf-8]

VikiWiki で使用する漢字コード。(デフォルトは utf-8)

--vikiwikiuri=[URI]

vikiwiki.zip が置かれている URI (デフォルトは http://vikiwiki.net/vikiwiki.zip)

VikiWiki サーバの起動

ここでは、 VikiWiki サーバを起動する方法について述べます。

デフォルトでの起動方法

コマンドラインから以下のように入力すると、全ての設定がデフォルトの状態で VikiWiki サーバが起動します。

  $ ruby -r vikiwiki -e VikiWiki::WEBrickServer.start

すなわち、ライブラリ vikiwiki.rb を require で取り込んだ後に VikiWiki::WEBrickServer クラスのクラスメソッド startを呼び出します。

この時、ホームディレクトリ $HOME に(もし存在しなければ)ディレクトリ VikiWiki/ が作成され、そこに VikiWiki のリポジトリとなるデータファイル群が置かれます。

この状態で、適当な web ブラウザから、 http://localhost:10080/vikiwiki にアクセスすると、 VikiWiki の初期画面が表示されます。

デフォルト以外の設定での起動方法

デフォルト以外の設定で VikiWiki サーバを起動する場合は、 VikiWiki::WEBrickServer.start メソッドの引数に各種設定値をハッシュとして与えます。

設定値は、通常の VikiWiki で指定するものの他、以下のものがが指定できます。

"PORT"

VikiWiki サーバが待ち受けるポート番号を指定します (デフォルトは 10080)。

"AUTHREALM"

VikiWiki サーバの basic 認証で使用する realm を指定します (デフォルトは "VikiWiki User")。

設定値の詳細については、 vikiwiki.zip 同梱の parameter.txt を参照してください。なお、設定値のデフォルト値は、以下の物を除いて parameter.txt で示された値と同様です。

  conf["AUTHOR"]      = "Administrator"
  conf["ADMIN"]       = "admin"
  conf["ADRESS"]      = "admin@example.com"
  conf["AUTHTYPE"]    = "none"
  conf["BASEDIR"]     = ENV["HOME"] + "/VikiWiki"
  conf["BASEURI"]     = "/"
  conf["ENCODING"]    = $VIKIWIKIENCODE; # インストール時に指定した
                                         # --encoding の値によって決まる
  conf["SCRIPT_NAME"] = "/vikiwiki"
  conf["STATICDIR"]   = ENV["HOME"] + "/VikiWiki/static"
  conf["STATICURI"]   = "/static"
  conf["WIKIFARM"]    = false
  conf["TITLE"]       = "VikiWiki - page"
  conf["STATICTITLE"] = "alias"
  conf["AUTHREALM"]   = "VikiWiki User"

例えば、 VikiWiki のデータファイル群を /home/zool/Wiki に置き、 VikiWiki サーバが接続をポート番号 20080 で待ち受ける様に設定する場合は、以下のようにします。

  $ ruby -r vikiwiki -e 'VikiWiki::WEBrickServer.start("BASEDIR" => "/home/zool/Wiki", "PORT" => 20080)'

スクリプトを用いた起動方法

VikiWiki サーバの起動の際に、より複雑な設定を行う場合は、以下のような Ruby スクリプトを作成します。

  require 'vikiwiki'

  VikiWiki::WEBrickServer.start(
      "BASEDIR" => "/home/zool/Wiki"
      "PORT"    => 20080
      "ADMIN"   => "zool"
      ...
  )    

そして、上記の ruby スクリプトの名前を vikiwiki-webrick.rb とすると、以下のようにして、 VikiWiki サーバを起動します。

  $ ruby vikiwiki-webrick.rb >> vikiwiki-webrick.log 2>&1 &

なお、 VikiWiki サーバの起動用スクリプトのサンプルとして、 vikiwiki-webrick.rb をパッケージに同梱しています。必要に応じて修正の上、御利用下さい。

WEBrick サーブレットクラス

また、 WEBrick::HTTPServer オブジェクトに mount するためのサーブレットクラスとして VikiWiki::Servlet クラスを用意しました。

これにより、既存の WEBrick アプリケーションに VikiWiki サーバを組み込むことができます。以下に例を示します。

  require "webrick"
  require "vikiwiki"

  s = WEBrick::HTTPServer(:Port => 10080)
  # ...
  # /home/zool/Wiki にリポジトリを置く VikiWiki サーバを組み込む。
  s.mount("/vikiwiki", VikiWiki::Servlet, {"BASEDIR" => "/home/zool/Wiki"})
  # ...
  s.start

なお、 VikiWiki::Servlet.new が取る引数は VikiWiki::WEBrickServer.start と同様ですが、設定値 "PORT" を指定することができません。

また、 VikiWiki::Servlet の mount point と設定値 "SCRIPT_NAME" の値が異なる 場合、 mount point の path が優先され、設定値 "SCRIPT_NAME" の値は無視され ます。

注意点その他

ここでは、このパッケージについての注意点等について述べます。

VikiWiki サーバの制限

このパッケージによる VikiWiki サーバには、以下の制限があります。

独自プラグイン等の利用

VikiWiki サーバから独自のプラグインや Wiki 記述スタイルのスクリプトを利用するには、以下のようにしてください。

VikiWiki サーバの認証と運用

VikiWiki サーバの認証に関する扱いは以下の通りです。

なお、VikiWiki サーバは、ローカルな環境で CMS モードで運用することを前提としています。外部への公開には適しませんので、御了承下さい。

設定値 "REPLACE_WORDS"

テキスト保存時に特殊な keyword を適当な文字列に置換するための設定値 "REPLACE_WORDS" において、変換対象となる keyword に対する値として Proc オブジェクトを指定すると、置換時に Proc オブジェクトが評価され、その結果を文字列に変換したものが置換後の値として使用されます。

例えば &DATE; や &TIME; などを現在の時刻や日付などに置き換える場合には、設定値 "REPLACE_WORDS" を以下のようにしてください。

  ...
  "REPLACE_WORDS" => {
    "&DATE;" => lambda { Time::now.strftime("%Y-%m-%d") },
    "&TIME;" => lambda { Time::now.strftime("%H:%M:%S") },
    ...
  }
  ## "&DATE;" => Time::now.strftime("%Y-%m-%d") とすると、 &DATE; は、
  ## 常に VikiWiki サーバ起動時の日付に置き換わってしまう。
  ...

謝辞

このパッケージの作成にあたって、何よりも VikiWiki の作者である mopia さんに心より感謝致します。

また、このパッケージのインストーラである setup.rb の作者の青木峰郎さんにも心より感謝致します。 setup.rb により、インストールの作業を容易にすることが出来ました。

そして、 WEBrick を作成された IPR -- Internet Programming with Rubyの方々に心より感謝致します。

最後に ruby の作者である まつもとゆきひろさんと ruby に関わ っておられるすべての方々に心より感謝致します。

配布条件



Generated by Wiki Engine VikiWiki version 1.9.7
Powered by Ruby version 1.8.3