Front Page  ページ一覧  検索  更新履歴  編集履歴  PageRank  RSS  ソース  ログイン  HikiFarm

Hiki Farm

Hiki Farmが動くまで!

長い道のりでした。やっとHiki Farmがまともに動くようになりました。当サイトの場合はAmritaが所定のライブラリにインストールできないので、HikiWiki自体の稼働にも少しコツが要ります。それも含めてHiki Farmが完全稼働するまでのドキュメントです。

無謀な挑戦

最初はHikiWikiを単体で動かしてみるのが簡単で良いのかも知れません。でもHiki Farmが気に入ったのと、めんどくさがりの性格とが相まって、いきなりHiki Farmのインストールに決めました。

Hiki Farmのインストールはご本家の説明通りでインストールできました。新しいWikiを作るまでは順調だったのですが、出来たWikiサイトは500InternalServerErrorが帰ってきました。

Amritaのインストール

Hikiを動かす為の前提ライブラリがインストールできてないので動くわけがありません。と言うわけでAmritaのインストールに挑戦。まずはSSHを使えるようにしなければなりません。

TelnetとSSH

まず最初にTelnetでの接続を許可しているサーバーでなければなりません。ボクが借りているサーバーはSSHでなら接続を許可しています。Telnetの端末には、この世界では超有名なTeraTermProを使います。

生のTelnetで接続するのはセキュリティ面で危険だそうで、SSHを使うらしいのですが詳しいことは知りません。SSHも超有名らしいttsshを使うのですが、ダウンロード後解凍した物をTeraTermProのインストールディレクトリに放り込むだけです。

余り意味がないかも知れないけれど日本語版TeraTermProもあるので、「やっぱり日本語だ」という方はどうぞ。

strscan

Amritaの動作条件としてstrscanがインストールされている必要があるのでまず最初にこちらを試みる。strscanもAmritaもRAAから入手できる。

Amritaがインストールの前提条件としてstrscanを要求するので、最初にstrscanをインストールしなければならない。あらかじめFTPで適当なディレクトリにstrscanを解凍した物をアップしておく、Amritaも同じことだから適当にアップしておく。

Telnet(SSH)で接続して、strscanのディレクトリまで移動する。

cd /home/strscan/
とか
cd /home/public_html/strscan/ とかになるかな?

で、ここまで来たらインストールのコマンドを順次実行する。

$ ruby install.rb config
$ ruby install.rb setup
# ruby install.rb install
#はrootのプロンプトらしい。レンタルの場合大抵$だと思う。

で、正常に終了したらdaneを表示されてインストールが終わる。エラーメッセージが出たら別のディレクトリへのインストールに切り替えるしか仕方がない。僕の場合は成功した。

Amrita

続いてAmritaのインストールだ。結論から言うとお借りしているサーバーではAmritaはインストールできませんでした。ライブラリのインストールでmkdirしようとしたときに拒否されているようです。仕方がないので別ディレクトリにインストールします。

Amritaの場所はWebから見えなくても良いのでhtdocsやpublic_htmlなどと同じ階層にruby_libなどのディレクトリを作って、ローカルにあるAmrita/lib内のamritaフォルダをそのまますべてアップします。

これだけでは通常とはamritaの場所が違うのでHiki Farmに教えてやる必要があります。Hiki Farmインストールディレクトリにあるhikifarm.confの最初の行RubyのPathで在処を-Iで指示してやります。

# rubyのパス
ruby = '/usr/bin/env ruby -I/hoge/lib-ruby/'

これでhikifarmディレクトリにブラウザからアクセスすればhikifarmが立ち上がるはずです。新しいWikiを作成してサイト作りが始まるはずでした。

index.cgiの改造

私の場合これだけでは動きませんでした。hikifarmが生成する新しいWikiスペースやデータディレクトリのパーミッションがサーバーの設定に合わなかったのです。

標準のままのhikifarmが作り出したディレクトリやファイルのパーミッションは全て744で出来上がります。うちのサーバーにはsuEXECが使われているようでHiki作者に依ればそのまま動くはずですとのことでしたが、残念ながら動きませんでした。そこでhikifarmが作り出すディレクトリやファイルのパーミッションを変更する必要が出てきました。

HIKIFARM_VERSION = '0.2.0'では220行目あたりから始まるcreate_wikiのセクションを加工する必要が出てきました。 File.umask()を使ってサーバーに教えてやる必要があります。

def create_wiki( wiki, data_path )
   File.umask(0)           #この行を追加する。
   Dir.mkdir( wiki )

うちのサーバーは標準で744をはき出すようですので一旦File.umask(0)をセットして新しいWikiを作ってみます。このときのパーミッションを見てindex.cgiを修正しました。うちの場合は777で作成されましたので、実際に設定したいパーミッションになるよう引き算するように設定します。

パーミッション755にしたいときは、File.umask(022)とすれば良いわけで、744の時は当然File.umask(033)となりますから、自分のサーバーに合わせて設定します。最終的に出来上がるのが。

def create_wiki( wiki, data_path, cvsroot=nil )
++ File.umask(022)
   Dir.mkdir( wiki )
   File.open( "#{wiki}/index.cgi", 'w' ) do |f|
     f.puts( index( wiki ) )
--   f.chmod( 0744 )
++   f.chmod( 0701 )
   end
   File::open( "#{wiki}/hikiconf.rb", 'w' ) do |f|
     f.puts( conf( wiki ) )
   end

++ File.umask(033)
   Dir.mkdir( "#{data_path}/#{wiki}" )
   Dir.mkdir( "#{data_path}/#{wiki}/text" )
   Dir.mkdir( "#{data_path}/#{wiki}/backup" )
   Dir.mkdir( "#{data_path}/#{wiki}/cache" )
   Dir["#{@default_pages}/*"].each do |file|

の様にすると、新しいWikiスペースのディレクトリは755、index.cgiは701、データ領域のディレクトリとファイルは744で出来ることになります。

この設定を終えてHiki Farmは完成します。Hiki Farmから新しいWikiを作って出来たWikiに移動してみると、見事に新しいHikiが動き出しました。

更新日時:2004/09/13 16:36:21
キーワード:
参照:[Hiki Farm] []