ラベル RoR の投稿を表示しています。 すべての投稿を表示
ラベル RoR の投稿を表示しています。 すべての投稿を表示

2009年1月17日土曜日

RedmineをFedoraで動かす

サーバー立てても文章置いとくだけじゃあれなので、なんかサービスを入れようと。とりあえず研究室で役立ちそうなものということで、Redmineをいれたいなぁと。実機でやってミスってはまずいので家のFedora10 on VMware で試す。LinuxにはInstantRailsがないのでメンドイ。大学行くまでに忘れそうなんでメモ

まずruby on railsが動く環境にしないといけないので、それの設定。
ruby周辺のインストール


yum install ruby
yum install ruby-devel
yum install icb
yum install rdoc


RubyGemsをhttp://rubyforge.org/frs/?group_id=126からもらってくる。適当な場所で展開して

ruby setup.rb
gem install rails


Ruby on rails は最近のはデータベースにsqlite3を使うらしいので

gem install sqlite3-ruby


Redmineをhttp://rubyforge.org/frs/?group_id=1850
でもらってきて、展開。展開したフォルダ中の/config/database.yml.examle をdatabase.ymlとしてコピー。
インストールの手引きにあるように、database.ymlのproductionの部分を

production:
adapter: sqlite3
dbfile: db/redmine.db
timeout: 5000

として

$ rake db:migrate RAILS_ENV=production
$ rake load_default_data RAILS_ENV=production
$ script/server -e production

でWEBrickが起動、localhost:3000で待ち受け状態になる。デフォルトランゲージの選択でjaにしていても、最初のadminでログインするとすべて英語…。管理のところの言語設定だけでなく、マイアカウントのところの言語設定も日本語にしてやる必要あり。

せっかくApache起動しているのにもう一個Webrick起動してポートも別に開放するのがなんか微妙?なのでApacheと連携させるってのを一度試してみんとなぁ。

2008年11月3日月曜日

暇暇にRailsとやらを試してみる

風邪である。ひきこもりである。暇である。
ってわけで普段だったらたぶん時間なくてできないことをひたすらやってみる。その一つがInstantRails使ってみよう。
なんで突然Ruby on Railsなのかというと、ひとつにはRedMineっていうサーバーにおいて使う形の管理ツールを使ってみたかったから+サーバーにアプリケーションおいていじるの一度やってみたかったから。まーたぶん今後はサーバーになんでもおいてそれを共有ってタイプの作業や処理が増えてくるであろうし、全然畑違いの物理ギョーカイのわれわれもその辺知っておいたほうがなにかといいんじゃねーかと。Fortranだけじゃなんもできんしな。たぶんサーバーにデータベースおいてそれいじる簡単な方法は知っといて損ないだろ。
で、流行ってるとことには便利なものがあるもんで、Eclipseを日本語化してそれにInstantRailsやそれようのIDE(Aptana?)やらなんかPythonとかも全部ほりこんでくれているPleiades all in one日本語ディストリビューションってのがあった。それのUltimet版とやらを落として解凍するだけでJavaのみならずからInstantRails、RubyからPythonからC++まで全部使える環境が手に入る。うはーいい時代だなぁ。新しく始める人間にとって実にありがたい。ほっとんどプログラム関係のこと知らんくてもサクッとお試しできるんだもんなー。
とりあえずeclipse起動して、パースペクティブ?をRedRailsのそれにして軽く試す。新規プロジェクトつくるだけで、一通り仕組みに必要なファイルが書き出されて、Mongrelとかゆーサーバーが起動して、初期設定画面が出てくる。そこに書いてあるチュートリアルどおりにいじって動くことは確認。へーこんなあっさり鯖ができてDBができてそれを操作ってRoRすげーとか思う。

さて問題は、ちょっと自分が使えるような簡単なものを作ってみるかって時に大抵発生する。ネットでいろいろやり方をさがして試してみるもなんだかうまくいかん。ネットの例は大抵ROR+mySQLだったんだが調べた結果
・Ruby on Rails 1.x とRuby on Rails 2.x では動作が全然違う
・2.x ではデータベースがデフォではSQlite3ってやつらしい→プロジェクト作る時にmySQL指定とかしないとmySQL使ってくれないらしい。
・eclipse経由だとInstant Railsを別に起動しとかないとmySQLを使えない(eclipseはDBにmySQL指定してもmySQLを立ち上げるわけじゃないっぽい?)
のがうまくいかない原因だったぽい。
とりあえず自分が「んー学会発表リストをつくってみるか」とおもってそれらしきものをつくった手順をメモっとく。参考にさせてもらったここのサイト見れば、陥りがちな日本語うまくいかねーとかも回避。
1 プロジェクトとしてlistってのを作成。データベースはmysql指定

2 Instant Rails起動

3 ジェネレーターって書いてあるところでscaffoldを選択。 パラメーターは list name:string place:string title:string from:datetime to:datetime coauthor:string で実行 (ruby script/generate list name:string place:string title:string from:datetime to:datetime coauthor:string ってコマンドラインで打つのと一緒ぽい )
これで、name place title from to coauthor っていう要素をもったテーブルをデータベースに作る用のファイルが001_create_lists.rbとかいう風にdb\migrateのフォルダにできる。同時にそうした要素への処理とかのメソッド?をいろいろ記述したのがapp\views下にいろいろできてるはず。

4 mysqlで必要なデータベースを作る。Instant Rails のI型のボタン押して、Railsアプリケーション→Railsアプリケーションの管理。新規アプリケーションの作成を押すとパスがとおった状態でコマンドプロンプトが開くので、cdとかつかってeclipseのプロジェクト置いてあるとこへ移動。
mysql -u root -p
create database list_development;
create database list_test;
create database list_production;
とやると、上記3つのデータベースができる。これはconfig\database.ymlに書かれている、Railsが使う3つのデータベースの名前に合わせてあって、デフォルトはプロジェクト名+developmentとかだ。
この段階でたとえば
use list_development;
show table;
とかやると、中身が空なのが分かる。

5 eclipseにもどって、テーブルの中身についてはさっきので指定してあるのでRakeタスクっていうタブ(ペインっちゅーんか?)を開いてdb:migrationを選択して実行する。( rake db:migration)するとデータベースにテーブルが作られる。
use list_development;
show table;
desclibe lists(←テーブル名);
でなんか変更が反映されてるのがわかる。

6 サーバーを起動。http://127.0.0.1:サーバーがふり当てられたポート番号/listsで動いていることを確認。

こんなんで動いた。RoRのすげーなところはデフォルトで、show edit destroyなんかのボタンが既にできているところで、単純な仕組みをつくるだけでいいならほんと一瞬でそれらしきものができてしまうあたり。DBのしくみとかほとんど知らなくてもなんか動くものできちゃったもんなぁ。というわけでしばらくこれいじって遊んでそうな気がする。rubyって誕生石だし。明日からは本業もせんとなぁ・・・