[話] kandan(Webチャット)のインストール

railsを使ったWebチャット、kandanをインストールしてみた。
インストールしたkandanのバージョンは、Version 1.1。

インストール先の環境は、2つ試してみた。
・Windows7 home premium, ruby 1.9.3 p374 , Rails 3.2.11, sqlite3
・Windows7 professional , ruby 1.9.3 p125, Rails 3.2.11, sqlite3
使ったブラウザは、Firefox 18.0または19.0。


■手順
gitのポート(9418)が閉じられている場合を想定した手順にしている。

1.ダウンロードと展開
githubのkandanのページから、masterブランチのzipをダウンロード。

ブラウザでダウンロードでもよいし、curlを使って
curl -L -O https://github.com/kandanapp/kandan/archive/master.zip
(または、curl -k -L -O https://github.com/kandanapp/kandan/archive/master.zip)
などでもよい。


C:\Users\hoge\Documents\RoR> curl -k -L -O https://github.com/kandanapp/kandan/archive/master.zip
C:\Users\hoge\Documents\RoR> unzip master.zip
C:\Users\hoge\Documents\RoR> mv kandan-master kandan


こんな感じで、kandanというディレクトリをtopとして、
その配下に全部master.zipの内容が入っているようにする。


2.gemのダウンロード


C:\Users\hoge\Documents\RoR\kandan> ls
CHANGELOG.md Gemfile.lock README.md config.ru lib vendor
CONTRIBUTING.md Guardfile Rakefile db public
DEPLOY.md LICENSE app dotcloud.yml script
Gemfile Procfile config gen-changelog.sh spec

C:\Users\hoge\Documents\RoR\kandan> bundle install --path=vendor/bundle


ここで、rubyのバージョンが重要になる。
1.9.3p125だと問題なく上記はインストールされるが、
1.9.3p374だとdebugger-linecache 1.1.2がうまく入らない

No source for ruby-1.9.3-p374 provided with debugger-ruby_core_source gem.
というメッセージが出て異常終了してしまう。

これはmysql2のときのように

C:\Users\hoge\Documents\RoR\kandan> bundle config build.debugger-linecache '--with-ruby-include=C:\Ruby193p374\include'
C:\Users\hoge\Documents\RoR\kandan> bundle install

のようなことをやってもダメで、bundle updateを使う必要があった。


C:\Users\hoge\Documents\RoR\kandan> bundle update debugger-linecache

これで入るはず。


3.node.jsのインストール
この先、ecoのparse errorが発生する箇所に泣かされることが
あるため、あらかじめここで回避策としてnode.jsを入れる。

node.jsのサイトからnode-v0.8.21-x86.msiをダウンロード
インストーラでインストールするとC:\Program Files\nodejs
にインストールされるはず。

インストール後、node -vを実行してバージョンが表示されれば
無事、入ったことが確認できる

ここで入れておかないとどうなるかというと、、、
このあと、bundle exec rake assets:precompileなど
を実行すると、
Error: Parse error on line 1: Unexpected 'INDENT'
や、
ExecJS::ProgramError - Error: Parse error on line 1: Unexpected 'INDENT'
のようなエラーが頻発します。。
ヒントはStackOverflowにありました。


4.kandanのDBセットアップ、プリコンパイル
rakeコマンド4連発でセットアップする。
database.ymlをみれば分かるが、デフォルトではsqlite3を使用
するようになっている。
他のDBを使いたければ、以下を実行前にdatabase.ymlを変更し
接続先DBについて設定しておくこと。


C:\Users\hoge\Documents\RoR\kandan> bundle exec rake db:create
C:\Users\hoge\Documents\RoR\kandan> bundle exec rake db:migrate
C:\Users\hoge\Documents\RoR\kandan> bundle exec rake kandan:bootstrap
C:\Users\hoge\Documents\RoR\kandan> bundle exec rake assets:precompile


もしbootstrapを忘れた場合、デフォルトユーザと、
デフォルトチャンネルがないので、自分で作らないと
まともに動かないことになるので注意。

デフォルトユーザは、lib/tasks/kandan.rakeをみれば分かるが、
ユーザ名 admin / パスワード kandanappadmin
である。あとでこのユーザにてログインしてみる。

デフォルトチャンネルは「Lobby」が用意されている。
あとでチャンネルの追加は数の上限があるものの自由にできる。

bootstrapしたあとは、pryなどでデフォルトユーザがユーザ登録
されていることを確認してみると安心である。

[1] pry(main)> User.all


なお、プリコンパイルは、やっておかないと画面アクセス時に
コンパイルされて遅くなる。


5.起動
ここまで設定できれば、サーバ起動して実際に使うことができる。

C:\Users\hoge\Documents\RoR\kandan> bundle exec ruby script\rails server -p [ポート番号]

にて起動。kandanはWebサーバとしてThinを使っている。
ポート番号は、指定しなくてもよい。その場合は3000番が使われる。

あとは、ブラウザにて、
http://127.0.0.1:[上記pオプションで指定したポート番号]
にアクセスし、ユーザ名adminにてログインする。
adminでなくとも、sign-upにて他にユーザを作ってもよい。

ちなみに今回、Firefox 18.0と19.0を使用。IE8だとうまく
動かなかった。またWindows XP SP3だとチャンネルのタブの
表示が崩れてしまう。Windows7のIE9だと一応動いた。

ログインすると、デフォルトチャンネル「Lobby」に、いくつか
発言が登録されているので、例として参考にする。(これらも
bootstrapで登録されるようだ)。
いくつか発言してみよう。日本語も使える。

なお、http://127.0.0.1:[ポート番号]/admin
とすれば、管理画面にアクセスできる。
他の画面は、ルーティングのconfigをみればどこに
アクセスできるか分かると思う。

もしkandan:bootstrapを忘れてしまい、見た目が崩れたうえに、
サーバ起動のコンソールでエラーが出続けるような状態に
なっても、とりいそぎチャンネルだけ1つ作ってやれば
とりあえず使えるようにはなる。


[7] pry(main)> Channel.new(:new => "example_channel").save


そのほかにハマった箇所として、kandan_settings.ymlにて
:public_siteで falseを指定すると、ユーザstatusが
approvalになってしまって困った。

管理画面で解除できるようだが、最悪、DBに直接
以下のようなことをしなくては解除できないかも。


[21] pry(main)> User.where(:id => [1,2]).update_all(:status => 'active');



●おまけ
参考までに、動作実績ありのgemの組合せを貼っておく。


C:\Users\hoge\Documents\RoR\kandan> bundle exec gem list
*** LOCAL GEMS ***

_bushido-faye (0.8.2)
_bushido-faye-websocket (0.4.4)
actionmailer (3.2.11)
actionpack (3.2.11)
activemodel (3.2.11)
activerecord (3.2.11)
activeresource (3.2.11)
activesupport (3.2.11)
addressable (2.3.2)
airbrake (3.1.8)
arel (3.0.2)
awesome_print (1.1.0)
aws-sdk (1.8.1.2)
bcrypt-ruby (3.0.1 x86-mingw32)
better_errors (0.5.0)
binding_of_caller (0.6.8)
bootstrap-sass (2.3.0.1)
bourbon (1.4.0)
bourne (1.1.2)
builder (3.0.4)
bundler (1.2.3)
childprocess (0.3.8)
cloudfuji (0.0.46)
cocaine (0.4.2)
coderay (1.0.8)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.4.0)
columnize (0.3.6)
cookiejar (0.3.0)
daemons (1.1.9)
database_cleaner (0.9.1)
debugger (1.2.3)
debugger-linecache (1.1.2)
debugger-ruby_core_source (1.1.9)
devise (1.5.3)
devise_cloudfuji_authenticatable (1.0.5)
diff-lcs (1.1.3)
eco (1.0.0)
eco-source (1.1.0.rc.1)
em-http-request (1.0.3)
em-socksify (0.2.1)
enumerize (0.5.1)
erubis (2.7.0)
eventmachine (1.0.0 x86-mingw32)
execjs (1.4.0)
factory_girl (4.2.0)
factory_girl_rails (4.2.1)
faker (1.1.2)
ffi (1.3.1 x86-mingw32)
guard (1.6.2)
guard-rspec (2.4.0)
highline (1.6.15)
hike (1.2.1)
http_parser.rb (0.5.3 x86-mingw32)
i18n (0.6.1)
jasmine (1.3.1)
jasmine-core (1.3.1)
journey (1.0.4)
jquery-rails (2.2.1)
json (1.7.7)
kaminari (0.14.1)
listen (0.7.2)
lumberjack (1.0.2)
mail (2.4.4)
metaclass (0.0.1)
method_source (0.8.1)
mime-types (1.21)
mocha (0.10.5)
multi_json (1.5.1)
nokogiri (1.5.6 x86-mingw32)
orm_adapter (0.0.7)
paperclip (3.4.0)
pg (0.14.1 x86-mingw32)
polyglot (0.3.3)
pry (0.9.11.4 i386-mingw32)
pry-rails (0.2.2)
quiet_assets (1.0.1)
rack (1.4.5)
rack-cache (1.2)
rack-ssl (1.3.3)
rack-test (0.6.2)
rails (3.2.11)
railties (3.2.11)
rake (10.0.3)
rdoc (3.12.1)
remotipart (1.0.5)
rest-client (1.6.7)
rspec (2.12.0)
rspec-core (2.12.2)
rspec-expectations (2.12.1)
rspec-mocks (2.12.2)
rspec-rails (2.12.2)
rubycas-client (2.3.9)
rubyzip (0.9.9)
sass (3.2.5)
sass-rails (3.2.6)
selenium-webdriver (2.29.0)
shoulda-matchers (1.4.2)
simplecov (0.7.1)
simplecov-html (0.7.1)
slop (3.4.3)
sprockets (2.2.2)
sqlite3 (1.3.7 x86-mingw32)
terminal-table (1.4.5)
thin (1.5.0)
thor (0.17.0)
tilt (1.3.3)
treetop (1.4.12)
tzinfo (0.3.35)
uglifier (1.3.0)
uuidtools (2.1.3)
warden (1.2.1)
websocket (1.0.7)
win32console (1.3.2 x86-mingw32)
yajl-ruby (1.1.0 x86-mingw32)






■関連エントリ

[録] Log4r使い方
[逆] rubyのバイトコード
[削] bundlerのバグ?(windows環境)
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

kr2

Author:kr2
ネコと音楽が好き。
CD紹介、技術ネタ
などの雑記帳。

カレンダー
07 | 2015/08 | 09
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
黒ねこ時計 くろック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
最近の記事
最近のコメント
最近のトラックバック
リンク
Zくん