Hiki Farm
Hiki Farmが動くまで!
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が動き出しました。
キーワード:
参照:[] [Hiki Farm]