HikiFarm 差分 - NOB's Wiki
- 最後の更新で追加された部分はこのように表示します。
- 最後の更新で削除された部分は
このように表示します。
{{toc}}
{{nazo}}
!HikiFarmが動くまで!
長い道のりでした。やっとHikiFarmがまともに動くようになりました。当サイトの場合はAmritaが所定のライブラリにインストールできないので、HikiWiki自体の稼働にも少しコツが要ります。それも含めてHikiFarmが完全稼働するまでのドキュメントです。
!無謀な挑戦
最初はHikiWikiを単体で動かしてみるのが簡単で良いのかも知れません。でもHikiFarmが気に入ったのと、めんどくさがりの性格とが相まって、いきなりHikiFarmのインストールに決めました。
HikiFarmのインストールはご本家の説明通りでインストールできました。新しいWikiを作るまでは順調だったのですが、出来たWikiサイトは500InternalServerErrorが帰ってきました。
!Amritaのインストール
Hikiを動かす為の前提ライブラリがインストールできてないので動くわけがありません。と言うわけでAmritaのインストールに挑戦。まずはSSHを使えるようにしなければなりません。
!!TelnetとSSH
まず最初にTelnetでの接続を許可しているサーバーでなければなりません。ボクが借りているサーバーはSSHでなら接続を許可しています。Telnetの端末には、この世界では超有名な[[TeraTermPro|http://hp.vector.co.jp/authors/VA002416/]]を使います。
生のTelnetで接続するのはセキュリティ面で危険だそうで、SSHを使うらしいのですが詳しいことは知りません。SSHも超有名らしい[[ttssh|http://www.zip.com.au/~roca/ttssh.html]]を使うのですが、ダウンロード後解凍した物をTeraTermProのインストールディレクトリに放り込むだけです。
余り意味がないかも知れないけれど[[日本語版TeraTermPro|http://www.sakurachan.org/soft/teraterm-j/]]もあるので、「やっぱり日本語だ」という方はどうぞ。
!!strscan
Amritaの動作条件としてstrscanがインストールされている必要があるのでまず最初にこちらを試みる。strscanもAmritaも[[RAA|http://raa.ruby-lang.org/list.rhtml?name=]]から入手できる。
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の場所が違うのでHikiFarmに教えてやる必要があります。HikiFarmインストールディレクトリにある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(022)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で出来ることになります。
この設定を終えてHikiFarmは完成します。HikiFarmから新しいWikiを作って出来たWikiに移動してみると、見事に新しいHikiが動き出しました。
{{nazo}}
!HikiFarmが動くまで!
長い道のりでした。やっとHikiFarmがまともに動くようになりました。当サイトの場合はAmritaが所定のライブラリにインストールできないので、HikiWiki自体の稼働にも少しコツが要ります。それも含めてHikiFarmが完全稼働するまでのドキュメントです。
!無謀な挑戦
最初はHikiWikiを単体で動かしてみるのが簡単で良いのかも知れません。でもHikiFarmが気に入ったのと、めんどくさがりの性格とが相まって、いきなりHikiFarmのインストールに決めました。
HikiFarmのインストールはご本家の説明通りでインストールできました。新しいWikiを作るまでは順調だったのですが、出来たWikiサイトは500InternalServerErrorが帰ってきました。
!Amritaのインストール
Hikiを動かす為の前提ライブラリがインストールできてないので動くわけがありません。と言うわけでAmritaのインストールに挑戦。まずはSSHを使えるようにしなければなりません。
!!TelnetとSSH
まず最初にTelnetでの接続を許可しているサーバーでなければなりません。ボクが借りているサーバーはSSHでなら接続を許可しています。Telnetの端末には、この世界では超有名な[[TeraTermPro|http://hp.vector.co.jp/authors/VA002416/]]を使います。
生のTelnetで接続するのはセキュリティ面で危険だそうで、SSHを使うらしいのですが詳しいことは知りません。SSHも超有名らしい[[ttssh|http://www.zip.com.au/~roca/ttssh.html]]を使うのですが、ダウンロード後解凍した物をTeraTermProのインストールディレクトリに放り込むだけです。
余り意味がないかも知れないけれど[[日本語版TeraTermPro|http://www.sakurachan.org/soft/teraterm-j/]]もあるので、「やっぱり日本語だ」という方はどうぞ。
!!strscan
Amritaの動作条件としてstrscanがインストールされている必要があるのでまず最初にこちらを試みる。strscanもAmritaも[[RAA|http://raa.ruby-lang.org/list.rhtml?name=]]から入手できる。
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の場所が違うのでHikiFarmに教えてやる必要があります。HikiFarmインストールディレクトリにある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の時は当然
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で出来ることになります。
この設定を終えてHikiFarmは完成します。HikiFarmから新しいWikiを作って出来たWikiに移動してみると、見事に新しいHikiが動き出しました。