初めてのRuby!!Passenger(mod_rails)を使ってチュートリアルしてみた

前回に続き、今度はチュートリアルを作成してみる。
まず、Railsを試すように適当にアカウントを作った。

# useradd test
# passwd test
(パスワード入力)

ついでに、MySQLのアカウントも作っておく。

# mysql -u root -p
(パスワード入力)
# GRANT ALL PRIVILEGES ON *.* TO test@localhost IDENTIFIED BY 'password' WITH GRANT OPTION

testのユーザディレクトリに入って早速作ってみる。
参考にしたのは、以下のチュートリアル。

http://www.onlamp.com/pub/a/onlamp/
2006/12/14/revisiting-ruby-on-rails-revisited.html
(と思ったが、途中でバージョンが違うのか出来なかったので予定変更)

よし、さっそくということで。

# su – test
(パスワード)

まずは、プロジェクトを作らないといけないらしい。
ということで、以下のコマンドを。
今回、データベースにMySQLを使うので"-d mysql"をつけた。

# rails -d mysql cookbook

なんかわらわらといっぱい作成出来たらしい。
ということで、まずはhttpd.confでバーチャルドメインの設定をしてあげる。

# vim /etc/apache2/conf/httpd.configure
(以下を追加)
<VirtualHost *:80>
    ServerAdmin test@xxxx.xxx
    DocumentRoot /home/test/cookbook/public
    ServerName test.xxxx.xxx
    CustomLog logs/test_access_log combined
    ErrorLog logs/test_error_log
    <Directory /home/test/cookbook/public>
        AllowOverride All
    </Directory>
</VirtualHost>

ということで、次はRailsのデータベースの設定を変更してやる。

# vim cookbook/config/database.yml
(サンプル)
development:
  adapter: mysql
  encoding: utf8
  database: cookbook_development
  username: dev
  password: passwd
  socket: /var/lib/mysql/mysql.sock

# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
  adapter: mysql
  encoding: utf8
  database: cookbook_test
  username: dev
  password: passwd
  socket: /var/lib/mysql/mysql.sock

production:
  adapter: mysql
  encoding: utf8
  database: cookbook_production
  username: dev
  password: passwd
  socket: /var/lib/mysql/mysql.soc

次にデータベースに、先ほど設定した内容を反映させる。
具体的には、MySQL上にデータベースが作成される。

# cd cookbook
# rake db:create:all

次に、Cookbookのテーブル定義とスクリプトを生成する。

# ruby script/generate scaffold Cookbook title:string body:text due:datetime
 

解説
Cookbook テーブル名
title:string以下 カラム定義

# rake db:migrate

以上!!
たった、ちょっとのRailsのコマンドだけでCookbookというテーブルと
それの管理画面が出来てしまった。便利すぎる。

ということで、以下のアドレスにアクセスして確認。

http://test.xxxx.xxx/cookbooks/

と、インターナルエラーがでてしまった。
どうやら、原因は、参照先に該当するテーブルがないらしい。

先ほどのデータベースの設定で、上記のようにアクセスすると
プロダクション側のデータベースを見にいっている。

ということで、面倒だったので以下の様に変更してしまった。

# vim config/database.yml
(以下を変更)
production:
  adapter: mysql
  encoding: utf8
  database: cookbook_development
  username: dev
  password: passwd
  socket: /var/lib/mysql/mysql.soc

で再度アクセス。
素晴らしい。



Popularity: 4% [?]

DiggGoogle BookmarksGoogle ReaderFacebookDeliciousFriendFeedEvernoteTwitterShare
  1. No comments yet.

  1. No trackbacks yet.