2011年9月27日火曜日

Redmineとgitの連携

■クライアントPCおよびRedmineの両方からアクセスできるように所有者変更
[root@redmine01 git_repos]# chown -R public:apache sample


■configuration.yml設定
⇒gitモジュールのパス確認
[root@redmine01 ~]# ll /usr/local/bin/git
-rwxr-xr-x 109 root root 4977962  9月 25 14:56 /usr/local/bin/git

⇒configuration.yml設定
[root@redmine01 ~]# vi /opt/redmine-1.2.1/config/configuration.yml
[root@redmine01 ~]# grep -n git /opt/redmine-1.2.1/config/configuration.yml
116:  # scm_git_command:        /usr/local/bin/git                        # (default: git)
122:  scm_git_command: /usr/local/bin/git	←修正
[root@redmine01 ~]#


■Redmine画面から設定
⇒gitの使用可能確認
管理 > 設定 > リポジトリタブ
使用するバージョン管理システム: gitのバージョンが表示され使用可能になっている

⇒gitリポジトリ設定
プロジェクト選択 > 設定 > リポジトリ
バージョン管理システム: Git
リポジトリのパス: /opt/git_repos/sample
→プロジェクトに"リポジトリ"タブが表示される。

2011年9月26日月曜日

CentOS5.7にgit1.7.6.1インストール

■インストーラダウンロード
https://github.com/git/git/downloads

[root@redmine01 ~]# ll /usr/local/
合計 80
drwxr-xr-x 2 root root 4096  9月 25 00:19 bin
drwxr-xr-x 2 root root 4096  5月 11 20:58 etc
drwxr-xr-x 2 root root 4096  5月 11 20:58 games
drwxr-xr-x 2 root root 4096  5月 11 20:58 include
drwxr-xr-x 3 root root 4096  9月 24 23:27 lib
drwxr-xr-x 2 root root 4096  5月 11 20:58 lib64
drwxr-xr-x 2 root root 4096  5月 11 20:58 libexec
drwxr-xr-x 2 root root 4096  5月 11 20:58 sbin
drwxr-xr-x 4 root root 4096  9月 24 05:19 share
drwxr-xr-x 2 root root 4096  5月 11 20:58 src

[root@redmine01 ~]# cd /home/public/src/
[root@redmine01 src]# tar -zxf git-git-v1.7.6.1-0-gccef604.tar.gz
[root@redmine01 src]# cd git-git-ce54b9b/

⇒./configureがないので、いきなりmake
[root@redmine01 git-git-ce54b9b]# make prefix=/usr/local
GIT_VERSION = 1.7.6.1
    * new build flags or prefix
    CC daemon.o
    * new link flags
    CC abspath.o
(中略)
    GEN bin-wrappers/test-svn-fe
    GEN bin-wrappers/test-treap
[root@redmine01 git-git-ce54b9b]#

⇒make install
[root@redmine01 git-git-ce54b9b]# make prefix=/usr/local install
    * new build flags or prefix
    CC daemon.o
    CC abspath.o
(中略)
                cp "$execdir/git-remote-http" "$execdir/$p" || exit; \
        done && \
        ./check_bindir "z$bindir" "z$execdir" "$bindir/git-add"
[root@redmine01 git-git-ce54b9b]#


■bareリポジトリ(共有リポジトリ)作成
[root@redmine01 ~]# mkdir -p /opt/git_repos/sample
[root@redmine01 ~]# cd /opt/git_repos/sample
[root@redmine01 sample]# git init --bare --shared=true
Initialized empty shared Git repository in /opt/git_repos/sample/
[root@redmine01 sample]# git branch
[root@redmine01 sample]#
※作成直後はブランチは存在しない。

⇒所有者変更
[root@redmine01 ~]# chown -R public: /opt/git_repos/sample
[root@redmine01 ~]# ll /opt/git_repos/sample
合計 32
-rw-rw-r-- 1 public public   23  9月 25 21:35 HEAD
drwxrwsr-x 2 public public 4096  9月 25 21:35 branches
-rw-rw-r-- 1 public public  126  9月 25 21:35 config
-rw-rw-r-- 1 public public   73  9月 25 21:35 description
drwxrwsr-x 2 public public 4096  9月 25 21:35 hooks
drwxrwsr-x 2 public public 4096  9月 25 21:35 info
drwxrwsr-x 4 public public 4096  9月 25 21:35 objects
drwxrwsr-x 4 public public 4096  9月 25 21:35 refs
[root@redmine01 ~]#


-----------------------------------------------------------
◆クライアントPC(Windows7)にて、msysgitインストール
⇒msysgitダウンロード
http://code.google.com/p/msysgit/downloads/list
Git-1.7.6-preview20110708.exe 

⇒インストール
ウィザードに従ってインストール。選択肢は下記を選択
・Use Git Bash only
・Ceckout Windows-style, commit Unix-style line endings


◆クライアントPC(Windows7)にて、msysgitを利用し対象ディレクトリをバージョン管理する
Welcome to Git (version 1.7.6-preview20110708)


Run 'git help git' to display the help index.
Run 'git help ' to display help for specific commands.

admin@TANYAO-PC /E/git_reops/test

⇒対象ディレクトリをgitでソース管理
$ git init
Initialized empty Git repository in e:/git_reops/test/.git/

admin@TANYAO-PC /E/git_reops/test (master)

⇒リモートの共有リポジトリをoriginという名前で定義
$ git remote add origin ssh://public@192.168.1.15/opt/git_repos/sample

admin@TANYAO-PC /E/git_reops/test (master)

⇒ユーザ名とメールアドレスを設定
$ git config --global user.name "tanyao"

admin@TANYAO-PC /E/git_reops/test (master)
$ git config --global user.email admin@tanyao.dynalias.net

admin@TANYAO-PC /E/git_reops/test (master)

⇒全ファイルをステージングに追加
$ git add .
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in Gemfile.
(後略)

admin@TANYAO-PC /E/git_reops/test (master)

⇒コミット
$ git commit -m "initial import"
[master (root-commit) 40b0767] initial import
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in Gemfile.
The file will have its original line endings in your working directory.
(後略)

admin@TANYAO-PC /E/git_reops/test (master)

⇒共有リポジトリにプッシュ
$ git push origin master
public@192.168.1.15's password:
Counting objects: 87, done.
Compressing objects: 100% (74/74), done.
Writing objects: 100% (87/87), 29.65 KiB, done.
Total 87 (delta 2), reused 0 (delta 0)
To ssh://public@192.168.1.15/opt/git_repos/sample
 * [new branch]      master -> master

admin@TANYAO-PC /E/git_reops/test (master)
-----------------------------------------------------------


■クライアントPC(Windows7)からpush後、再確認
[root@redmine01 sample]# git branch
* master
[root@redmine01 sample]# ll
合計 32
-rw-rw-r--  1 public public   23  9月 25 21:35 HEAD
drwxrwsr-x  2 public public 4096  9月 25 21:35 branches
-rw-rw-r--  1 public public  126  9月 25 21:35 config
-rw-rw-r--  1 public public   73  9月 25 21:35 description
drwxrwsr-x  2 public public 4096  9月 25 21:35 hooks
drwxrwsr-x  2 public public 4096  9月 25 21:35 info
drwxrwsr-x 79 public public 4096  9月 25 21:46 objects ←ファイルが増えている
drwxrwsr-x  4 public public 4096  9月 25 21:35 refs
[root@redmine01 sample]# ll objects/
合計 308
drwxrwsr-x 2 public public 4096  9月 25 21:46 04
drwxrwsr-x 2 public public 4096  9月 25 21:46 05
drwxrwsr-x 2 public public 4096  9月 25 21:46 08
drwxrwsr-x 2 public public 4096  9月 25 21:46 0a
drwxrwsr-x 2 public public 4096  9月 25 21:46 11
(後略)


■devブランチ作成
[root@redmine01 sample]# git branch dev
[root@redmine01 sample]# git branch
  dev
* master
[root@redmine01 sample]# git checkout dev
fatal: This operation must be run in a work tree
[root@redmine01 sample]#
※bareリポジトリではmaster以外のブランチに移動できないようだ。


-----------------------------------------------------------
◆クライアントPC(Windows7)にて、共有リポジトリをプル
$ git pull
public@192.168.1.15's password:
From ssh://192.168.1.15/opt/git_repos/sample
 * [new branch]      dev        -> origin/dev
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull  ').
See git-pull(1) for details.

If you often merge with the same branch, you may want to
use something like the following in your configuration file:
    [branch "master"]
    remote = 
    merge = 

    [remote ""]
    url = 
    fetch = 

See git-config(1) for details.

admin@TANYAO-PC /E/git_reops/test (master)

⇒リモートブランチからローカルブランチを生成
$ git branch -a
* master
  remotes/origin/dev
  remotes/origin/master

admin@TANYAO-PC /E/git_reops/test (master)
$ git checkout -b dev origin/dev
Branch dev set up to track remote branch dev from origin.
Switched to a new branch 'dev'

admin@TANYAO-PC /E/git_reops/test (dev)
$ git branch -a
* dev
  master
  remotes/origin/dev
  remotes/origin/master

admin@TANYAO-PC /E/git_reops/test (dev)

2011年9月25日日曜日

Redmine1.2.1構築メモ(4)

■構成情報
・OS:    CentOS5.7(64bit)
・MySQL:   5.0.77(OSバンドル)
・Ruby:   1.8.7(Ruby Enterprise Editionを利用)
 ・rack:  1.1.1
 ・rake:  0.8.7
 ・i18n:  0.4.2
・Apache:  2.2.3(OSバンドル)
・Passenger: 3.0.9
・Redmine:  1.2.1
(4) ApacheにPassengerを組み込み

■パッケージを準備
[root@redmine01 ~]# rpm -q httpd-devel
パッケージ httpd-devel はインストールされていません。
[root@redmine01 ~]# yum -y install httpd-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd-devel.i386 0:2.2.3-53.el5.centos.1 set to be updated
--> Processing Dependency: httpd = 2.2.3-53.el5.centos.1 for package: httpd-devel
--> Processing Dependency: apr-util-devel for package: httpd-devel
--> Processing Dependency: apr-devel for package: httpd-devel
---> Package httpd-devel.x86_64 0:2.2.3-53.el5.centos.1 set to be updated
--> Running transaction check
---> Package apr-devel.x86_64 0:1.2.7-11.el5_6.5 set to be updated
---> Package apr-util-devel.x86_64 0:1.2.7-11.el5_5.2 set to be updated
--> Processing Dependency: httpd = 2.2.3-53.el5.centos for package: mod_ssl
--> Processing Dependency: httpd = 2.2.3-53.el5.centos for package: httpd-manual
---> Package httpd.x86_64 0:2.2.3-53.el5.centos.1 set to be updated
--> Running transaction check
---> Package httpd-manual.x86_64 0:2.2.3-53.el5.centos.1 set to be updated
---> Package mod_ssl.x86_64 1:2.2.3-53.el5.centos.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================================
 Package                               Arch                Version                        Repository                 Size
==========================================================================================================================
Installing:
 httpd-devel                           i386                2.2.3-53.el5.centos.1          updates                   151 k
 httpd-devel                           x86_64              2.2.3-53.el5.centos.1          updates                   151 k
Installing for dependencies:
 apr-devel                             x86_64              1.2.7-11.el5_6.5               base                      238 k
 apr-util-devel                        x86_64              1.2.7-11.el5_5.2               base                       53 k
Updating for dependencies:
 httpd                                 x86_64              2.2.3-53.el5.centos.1          updates                   1.2 M
 httpd-manual                          x86_64              2.2.3-53.el5.centos.1          updates                   815 k
 mod_ssl                               x86_64              1:2.2.3-53.el5.centos.1        updates                    94 k

Transaction Summary
==========================================================================================================================
Install       4 Package(s)
Upgrade       3 Package(s)

Total download size: 2.7 M
Downloading Packages:
(1/7): apr-util-devel-1.2.7-11.el5_5.2.x86_64.rpm                                                       |  53 kB     00:00
(2/7): mod_ssl-2.2.3-53.el5.centos.1.x86_64.rpm                                                         |  94 kB     00:00
(3/7): httpd-devel-2.2.3-53.el5.centos.1.x86_64.rpm                                                     | 151 kB     00:00
(4/7): httpd-devel-2.2.3-53.el5.centos.1.i386.rpm                                                       | 151 kB     00:00
(5/7): apr-devel-1.2.7-11.el5_6.5.x86_64.rpm                                                            | 238 kB     00:00
(6/7): httpd-manual-2.2.3-53.el5.centos.1.x86_64.rpm                                                    | 815 kB     00:00
(7/7): httpd-2.2.3-53.el5.centos.1.x86_64.rpm                                                           | 1.2 MB     00:00
---------------------------------------------------------------------------------------------------------------------------
Total                                                                                          1.2 MB/s | 2.7 MB     00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : httpd                                                                                              1/10
  Installing     : apr-devel                                                                                          2/10
  Updating       : mod_ssl                                                                                            3/10
  Installing     : apr-util-devel                                                                                     4/10
  Updating       : httpd-manual                                                                                       5/10
  Installing     : httpd-devel                                                                                        6/10
  Installing     : httpd-devel                                                                                        7/10
  Cleanup        : httpd-manual                                                                                       8/10
  Cleanup        : httpd                                                                                              9/10
  Cleanup        : mod_ssl                                                                                           10/10

Installed:
  httpd-devel.i386 0:2.2.3-53.el5.centos.1   httpd-devel.x86_64 0:2.2.3-53.el5.centos.1

Dependency Installed:
  apr-devel.x86_64 0:1.2.7-11.el5_6.5        apr-util-devel.x86_64 0:1.2.7-11.el5_5.2

Dependency Updated:
  httpd.x86_64 0:2.2.3-53.el5.centos.1       httpd-manual.x86_64 0:2.2.3-53.el5.centos.1     mod_ssl.x86_64 1:2.2.3-53.el5.centos.1

Complete!
[root@redmine01 ~]#


■Passengerのインストール
[root@redmine01 ~]# gem install passenger --no-rdoc --no-ri
Fetching: fastthread-1.0.7.gem (100%)
Building native extensions.  This could take a while...
Fetching: daemon_controller-0.2.6.gem (100%)
Fetching: passenger-3.0.9.gem (100%)
Successfully installed fastthread-1.0.7
Successfully installed daemon_controller-0.2.6
Successfully installed passenger-3.0.9
3 gems installed
[root@redmine01 ~]#


■PassengerのApache用モジュールのインストール
[root@redmine01 ~]# passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v3.0.9.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.


--------------------------------------------

Checking for required software...

 * GNU C++ compiler... found at /usr/bin/g++
 * Curl development headers with SSL support... found
 * OpenSSL development headers... found
 * Zlib development headers... found
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /usr/local/bin/rake
 * rack... found
 * Apache 2... found at /usr/sbin/httpd
 * Apache 2 development headers... found at /usr/sbin/apxs
 * Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-1-config
 * Apache Portable Runtime Utility (APU) development headers... found at /usr/bin/apu-1-config

--------------------------------------------
Compiling and installing Apache 2 module...
cd /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9
/usr/local/bin/ruby /usr/local/bin/rake apache2:clean apache2 RELEASE=yes
(中略)

--------------------------------------------
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9
   PassengerRuby /usr/local/bin/ruby

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!

Press ENTER to continue.


--------------------------------------------
Deploying a Ruby on Rails application: an example

Suppose you have a Rails application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:

   
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      
   

And that's it! You may also want to check the Users Guide for security and
optimization tips, troubleshooting and other useful information:

  /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9/doc/Users guide Apache.html

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
http://www.modrails.com/

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
[root@redmine01 ~]#


■Apacheの設定
⇒worker MPMに切り替える
[root@redmine01 ~]# vi /etc/sysconfig/httpd
[root@redmine01 ~]# grep httpd.worker /etc/sysconfig/httpd
#HTTPD=/usr/sbin/httpd.worker
HTTPD=/usr/sbin/httpd.worker ←追記

⇒passnger.conf作成
[root@redmine01 ~]# vi /etc/httpd/conf.d/passnger.conf
[root@redmine01 ~]# cat /etc/httpd/conf.d/passnger.conf
# output of "passenger-install-apache2-module"
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9
PassengerRuby /usr/local/bin/ruby

# rails settings
RailsBaseURI /redmine

# Passengerが追加するHTTPヘッダを削除するための設定
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加。
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerUseGlobalQueue on
PassengerHighPerformance on
PassengerStatThrottleRate 10
RailsSpawnMethod smart
RailsAppSpawnerIdleTime 86400
RailsFrameworkSpawnerIdleTime 0
[root@redmine01 ~]#

⇒Apache自動起動設定
[root@redmine01 ~]# chkconfig --list httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@redmine01 ~]# chkconfig httpd on

⇒Redmineディレクトリの所有者変更
[root@redmine01 ~]# chown -R apache: /opt/redmine-1.2.1

⇒サブディレクトリでRedmineを実行(シンボリックリンク作成)
[root@redmine01 ~]# ln -s /opt/redmine-1.2.1/public /var/www/html/redmine

⇒Apacheを起動
[root@redmine01 ~]# /etc/init.d/httpd configtest
Syntax OK
[root@redmine01 ~]# /etc/init.d/httpd graceful
httpd not running, trying to start
[root@redmine01 ~]#

⇒ブラウザからアクセス
http://192.168.1.15/redmine/
ログイン:admin/admin

お手数をおかけして恐縮ですが、広告サイトクリックにご協力いただけるとありがたいです。m(_ _)m

2011年9月24日土曜日

Redmine1.2.1構築メモ(3)

■構成情報
・OS:    CentOS5.7(64bit)
・MySQL:   5.0.77(OSバンドル)
・Ruby:   1.8.7(Ruby Enterprise Editionを利用)
 ・rack:  1.1.1
 ・rake:  0.8.7
 ・i18n:  0.4.2
・Apache:  2.2.3(OSバンドル)
・Passenger: 3.0.9
・Redmine:  1.2.1
(3) Redmineインストール

■インストーラダウンロード&解凍
http://rubyforge.org/frs/?group_id=1850
redmine-1.2.1.tar.gzをダウンロードしてサーバにUP

⇒/optに解凍
[root@redmine01 src]# tar -zxf redmine-1.2.1.tar.gz -C /opt

■Redmine関連ファイル設定
[root@redmine01 ~]# cd /opt/redmine-1.2.1/

⇒database.yml作成
[root@redmine01 redmine-1.2.1]# vi config/database.yml
[root@redmine01 redmine-1.2.1]# cat config/database.yml
production:
  adapter: mysql
  database: db_redmine
  host: localhost
  username: user_redmine
  password: ienaiyo
  encoding: utf8
[root@redmine01 redmine-1.2.1]#

⇒configuration.ymlの設定
[root@redmine01 redmine-1.2.1]# cp config/configuration.yml.example config/configuration.yml
[root@redmine01 redmine-1.2.1]# vi config/configuration.yml
[root@redmine01 redmine-1.2.1]# tail -11 config/configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: 'foo.com'

# specific configuration options for development environment
# that overrides the default ones
development:
[root@redmine01 redmine-1.2.1]#

⇒Redmineの初期設定とデータベースのテーブル作成
[root@redmine01 redmine-1.2.1]# rake generate_session_store
(in /opt/redmine-1.2.1)
[root@redmine01 redmine-1.2.1]# rake db:migrate RAILS_ENV=production
(in /opt/redmine-1.2.1)
==  Setup: migrating ==========================================================
-- create_table("attachments", {:force=>true})
   -> 0.0072s
-- create_table("auth_sources", {:force=>true})
(中略)

==  AddRepositoriesExtraInfo: migrating =======================================
-- add_column(:repositories, :extra_info, :text)
   -> 0.0092s
==  AddRepositoriesExtraInfo: migrated (0.0095s) ==============================

[root@redmine01 redmine-1.2.1]#



2011年9月23日金曜日

Redmine1.2.1構築メモ(2)

■構成情報
・OS:    CentOS5.7(64bit)
・MySQL:   5.0.77(OSバンドル)
・Ruby:   1.8.7(Ruby Enterprise Editionを利用)
 ・rack:  1.1.1
 ・rake:  0.8.7
 ・i18n:  0.4.2
・Apache:  2.2.3(OSバンドル)
・Passenger: 3.0.9
・Redmine:  1.2.1
(2) Ruby Enterprise Edition インストール

■OSバンドルのRuby有無確認
[root@redmine01 ~]# rpm -qa | grep ruby
[root@redmine01 ~]#
⇒既存Rubyは存在しないのでOK!

■インストーラダウンロード&解凍
http://www.rubyenterpriseedition.com/download.html
ruby-enterprise-1.8.7-2011.03.tar.gzをダウンロードしてサーバにUP

[root@redmine01 ~]# cd /home/public/src/
[root@redmine01 src]# tar -zxf ruby-enterprise-1.8.7-2011.03.tar.gz

■インストール
[root@redmine01 src]# ruby-enterprise-1.8.7-2011.03/installer --dont-install-useful-gems --no-dev-docs
Welcome to the Ruby Enterprise Edition installer
This installer will help you install Ruby Enterprise Edition 1.8.7-2011.03.
Don't worry, none of your system files will be touched if you don't want them
to, so there is no risk that things will screw up.

You can expect this from the installation process:

  1. Ruby Enterprise Edition will be compiled and optimized for speed for this
     system.
  2. Ruby on Rails will be installed for Ruby Enterprise Edition.
  3. You will learn how to tell Phusion Passenger to use Ruby Enterprise
     Edition instead of regular Ruby.

Press Enter to continue, or Ctrl-C to abort.

Checking for required software...

 * C compiler... found at /usr/bin/gcc
 * C++ compiler... found at /usr/bin/g++
 * The 'make' tool... found at /usr/bin/make
 * The 'patch' tool... found at /usr/bin/patch
 * Zlib development headers... found
 * OpenSSL development headers... found
 * GNU Readline development headers... found
--------------------------------------------
Target directory

Where would you like to install Ruby Enterprise Edition to?
(All Ruby Enterprise Edition files will be put inside that directory.)

[/opt/ruby-enterprise-1.8.7-2011.03] : /usr/local ←インストール先を指定
--------------------------------------------
Compiling and optimizing the memory allocator for Ruby Enterprise Edition
In the mean time, feel free to grab a cup of coffee.
(中略)

--------------------------------------------
Installing useful libraries...
/usr/local/bin/ruby /usr/local/bin/gem sources --update
source cache successfully updated
Updating /usr/local/bin/irb...
Updating /usr/local/bin/gem...
Updating /usr/local/bin/ri...
Updating /usr/local/bin/erb...
Updating /usr/local/bin/testrb...
Updating /usr/local/bin/rdoc...
--------------------------------------------
Ruby Enterprise Edition is successfully installed!
If want to use Phusion Passenger (http://www.modrails.com) in combination
with Ruby Enterprise Edition, then you must reinstall Phusion Passenger against
Ruby Enterprise Edition, as follows:

  /usr/local/bin/passenger-install-apache2-module

Make sure you don't forget to paste the Apache configuration directives that
the installer gives you.


If you ever want to uninstall Ruby Enterprise Edition, simply remove this
directory:

  /usr/local

If you have any questions, feel free to visit our website:

  http://www.rubyenterpriseedition.com

Enjoy Ruby Enterprise Edition, a product of Phusion (www.phusion.nl) :-)
[root@redmine01 src]# 

⇒/usr/localのインストール前
[root@redmine01 ~]# ll /usr/local/
合計 80
drwxr-xr-x 2 root root 4096  5月 11 20:58 bin
drwxr-xr-x 2 root root 4096  5月 11 20:58 etc
drwxr-xr-x 2 root root 4096  5月 11 20:58 games
drwxr-xr-x 2 root root 4096  5月 11 20:58 include
drwxr-xr-x 2 root root 4096  5月 11 20:58 lib
drwxr-xr-x 2 root root 4096  5月 11 20:58 lib64
drwxr-xr-x 2 root root 4096  5月 11 20:58 libexec
drwxr-xr-x 2 root root 4096  5月 11 20:58 sbin
drwxr-xr-x 4 root root 4096  9月 24 05:19 share
drwxr-xr-x 2 root root 4096  5月 11 20:58 src

⇒/usr/localのインストール後
[root@redmine01 ~]# ll /usr/local/
合計 80
drwxr-xr-x 2 root root 4096  9月 24 23:27 bin
drwxr-xr-x 2 root root 4096  5月 11 20:58 etc
drwxr-xr-x 2 root root 4096  5月 11 20:58 games
drwxr-xr-x 2 root root 4096  5月 11 20:58 include
drwxr-xr-x 3 root root 4096  9月 24 23:27 lib
drwxr-xr-x 2 root root 4096  5月 11 20:58 lib64
drwxr-xr-x 2 root root 4096  5月 11 20:58 libexec
drwxr-xr-x 2 root root 4096  5月 11 20:58 sbin
drwxr-xr-x 4 root root 4096  9月 24 05:19 share
drwxr-xr-x 2 root root 4096  5月 11 20:58 src


■gemパッケージのインストール
⇒Rack 1.1.1のインストール
[root@redmine01 ~]# gem install rack -v=1.1.1 --no-rdoc --no-ri
Fetching: rack-1.1.1.gem (100%)
Successfully installed rack-1.1.1
1 gem installed
[root@redmine01 ~]#

⇒rake 0.8.7のインストール
[root@redmine01 ~]# gem install rake -v=0.8.7 --no-rdoc --no-ri
Fetching: rake-0.8.7.gem (100%)
Successfully installed rake-0.8.7
1 gem installed
[root@redmine01 ~]#

⇒i18n 0.4.2のインストール
[root@redmine01 ~]# gem install i18n -v=0.4.2 --no-rdoc --no-ri
Fetching: i18n-0.4.2.gem (100%)
Successfully installed i18n-0.4.2
1 gem installed
[root@redmine01 ~]#

⇒Ruby用MySQLドライバのインストール
[root@redmine01 ~]# gem install mysql --no-rdoc --no-ri
Fetching: mysql-2.8.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed mysql-2.8.1
1 gem installed
[root@redmine01 ~]#

⇒確認
[root@redmine01 ~]# gem list

*** LOCAL GEMS ***

i18n (0.4.2)
mysql (2.8.1)
rack (1.1.1)
rake (0.8.7)
[root@redmine01 ~]#

2011年9月22日木曜日

Redmine1.2.1構築メモ(1)

■構成情報
・OS:    CentOS5.7(64bit)
・MySQL:   5.0.77(OSバンドル)
・Ruby:   1.8.7(Ruby Enterprise Editionを利用)
 ・rack:  1.1.1
 ・rake:  0.8.7
 ・i18n:  0.4.2
・Apache:  2.2.3(OSバンドル)
・Passenger: 3.0.9
・Redmine:  1.2.1
(1) MySQLの準備

■OSバンドルのmysqlモジュール確認
[root@redmine01 ~]# mysql --version
mysql  Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1
[root@redmine01 ~]# rpm -qa | grep mysql
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-5.0.77-4.el5_6.6
mysql-server-5.0.77-4.el5_6.6
mysql-5.0.77-4.el5_6.6
mysql-connector-odbc-3.51.26r1127-1.el5
⇒mysql-develがない!

■mysql-develインストール
[root@redmine01 ~]# yum -y install mysql-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.i386 0:5.0.77-4.el5_6.6 set to be updated
---> Package mysql-devel.x86_64 0:5.0.77-4.el5_6.6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================
 Package                    Arch          Version                 Repository       Size
========================================================================================
Installing:
 mysql-devel                i386          5.0.77-4.el5_6.6        base            2.4 M
 mysql-devel                x86_64        5.0.77-4.el5_6.6        base            2.5 M

Transaction Summary
========================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 4.9 M
Downloading Packages:
(1/2): mysql-devel-5.0.77-4.el5_6.6.i386.rpm                              | 2.4 MB  00:01
(2/2): mysql-devel-5.0.77-4.el5_6.6.x86_64.rpm                            | 2.5 MB  00:00
------------------------------------------------------------------------------------------
Total                                                            2.2 MB/s | 4.9 MB  00:02
警告: rpmts_HdrFromFdno: ヘッダ V3 DSA signature: NOKEY, key ID e8562897
base/gpgkey                                                               | 1.5 kB  00:00
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) " from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : mysql-devel                                                                                      1/2
  Installing     : mysql-devel                                                                                      2/2

Installed:
  mysql-devel.i386 0:5.0.77-4.el5_6.6                       mysql-devel.x86_64 0:5.0.77-4.el5_6.6

Complete!
[root@redmine01 ~]#


■データベース初期化
[root@redmine01 ~]# /etc/init.d/mysqld start
MySQL データベースを初期化中:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h rails02.daynalias.net password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
                                                           [  OK  ]
MySQL を起動中:                                            [  OK  ]

⇒起動確認
[root@redmine01 ~]# mysqlshow
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+


■自動起動設定
[root@redmine01 ~]# chkconfig --list mysqld
mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@redmine01 ~]# chkconfig mysqld on
[root@redmine01 ~]# chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off


■MySQLのデフォルトキャラクタセットをutf8に設定
[root@redmine01 ~]# cp -p /etc/my.cnf /etc/my.cnf.20110510
[root@redmine01 ~]# vi /etc/my.cnf
[root@redmine01 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

# 20110924 for redmine		←追記
default-character-set=utf8	←追記

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

# 20110924 for redmine		←追記
[mysql]				←追記
default-character-set=utf8	←追記
[root@redmine01 ~]#

⇒キャラクタセット設定確認
[root@redmine01 ~]# /etc/init.d/mysqld restart
MySQL を停止中:                                            [  OK  ]
MySQL を起動中:                                            [  OK  ]
[root@redmine01 ~]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


■Redmine用データベース準備
⇒匿名ユーザー削除
mysql> use mysql
Database changed
mysql> delete from user where user = '';
Query OK, 2 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

⇒Redmine用データベースとユーザーの作成
mysql> create database db_redmine default character set utf8;
Query OK, 1 row affected (0.06 sec)

mysql> grant all on db_redmine.* to user_redmine identified by 'ienaiyo';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

2011年9月21日水曜日

apacheにpassenger組み込み

■前提
CentOS5.7バンドルのapacheを利用する。


■現在組み込まれているパッケージの確認
[root@rails01 ~]# rpm -qa | grep -e httpd- -e apr-
httpd-2.2.3-53.el5.centos
apr-1.2.7-11.el5_6.5
apr-1.2.7-11.el5_6.5
apr-util-1.2.7-11.el5_5.2
apr-util-1.2.7-11.el5_5.2
httpd-manual-2.2.3-53.el5.centos
system-config-httpd-1.3.3.3-1.el5
⇒passengerインストールに必要そうなhttpd-devel、apr-develがない!


■passengerコマンドに必要なパッケージを準備
[root@rails01 ~]# yum -y install httpd-devel apr-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package apr-devel.i386 0:1.2.7-11.el5_6.5 set to be updated
---> Package apr-devel.x86_64 0:1.2.7-11.el5_6.5 set to be updated
---> Package httpd-devel.i386 0:2.2.3-53.el5.centos.1 set to be updated
--> Processing Dependency: httpd = 2.2.3-53.el5.centos.1 for package: httpd-devel
--> Processing Dependency: apr-util-devel for package: httpd-devel
---> Package httpd-devel.x86_64 0:2.2.3-53.el5.centos.1 set to be updated
--> Running transaction check
---> Package apr-util-devel.x86_64 0:1.2.7-11.el5_5.2 set to be updated
--> Processing Dependency: httpd = 2.2.3-53.el5.centos for package: mod_ssl
--> Processing Dependency: httpd = 2.2.3-53.el5.centos for package: httpd-manual
---> Package httpd.x86_64 0:2.2.3-53.el5.centos.1 set to be updated
--> Running transaction check
---> Package httpd-manual.x86_64 0:2.2.3-53.el5.centos.1 set to be updated
---> Package mod_ssl.x86_64 1:2.2.3-53.el5.centos.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================
 Package                          Arch                     Version                                    Repository                 Size
======================================================================================================================================
Installing:
 apr-devel                        i386                     1.2.7-11.el5_6.5                           base                      233 k
 apr-devel                        x86_64                   1.2.7-11.el5_6.5                           base                      238 k
 httpd-devel                      i386                     2.2.3-53.el5.centos.1                      updates                   151 k
 httpd-devel                      x86_64                   2.2.3-53.el5.centos.1                      updates                   151 k
Installing for dependencies:
 apr-util-devel                   x86_64                   1.2.7-11.el5_5.2                           base                       53 k
Updating for dependencies:
 httpd                            x86_64                   2.2.3-53.el5.centos.1                      updates                   1.2 M
 httpd-manual                     x86_64                   2.2.3-53.el5.centos.1                      updates                   815 k
 mod_ssl                          x86_64                   1:2.2.3-53.el5.centos.1                    updates                    94 k

Transaction Summary
======================================================================================================================================
Install       5 Package(s)
Upgrade       3 Package(s)

Total download size: 2.9 M
Downloading Packages:
(1/8): apr-util-devel-1.2.7-11.el5_5.2.x86_64.rpm                                                              |  53 kB     00:00
(2/8): mod_ssl-2.2.3-53.el5.centos.1.x86_64.rpm                                                                |  94 kB     00:00
(3/8): httpd-devel-2.2.3-53.el5.centos.1.x86_64.rpm                                                            | 151 kB     00:00
(4/8): httpd-devel-2.2.3-53.el5.centos.1.i386.rpm                                                              | 151 kB     00:00
(5/8): apr-devel-1.2.7-11.el5_6.5.i386.rpm                                                                     | 233 kB     00:00
(6/8): apr-devel-1.2.7-11.el5_6.5.x86_64.rpm                                                                   | 238 kB     00:00
(7/8): httpd-manual-2.2.3-53.el5.centos.1.x86_64.rpm                                                           | 815 kB     00:00
(8/8): httpd-2.2.3-53.el5.centos.1.x86_64.rpm                                                                  | 1.2 MB     00:00
--------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                 1.3 MB/s | 2.9 MB     00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : httpd                                                                                                         1/11
  Installing     : apr-devel                                                                                                     2/11
  Updating       : mod_ssl                                                                                                       3/11
  Installing     : apr-util-devel                                                                                                4/11
  Updating       : httpd-manual                                                                                                  5/11
  Installing     : httpd-devel                                                                                                   6/11
  Installing     : httpd-devel                                                                                                   7/11
  Installing     : apr-devel                                                                                                     8/11
  Cleanup        : httpd-manual                                                                                                  9/11
  Cleanup        : httpd                                                                                                        10/11
  Cleanup        : mod_ssl                                                                                                      11/11

Installed:
  apr-devel.i386 0:1.2.7-11.el5_6.5              apr-devel.x86_64 0:1.2.7-11.el5_6.5     httpd-devel.i386 0:2.2.3-53.el5.centos.1
  httpd-devel.x86_64 0:2.2.3-53.el5.centos.1

Dependency Installed:
  apr-util-devel.x86_64 0:1.2.7-11.el5_5.2

Dependency Updated:
  httpd.x86_64 0:2.2.3-53.el5.centos.1     httpd-manual.x86_64 0:2.2.3-53.el5.centos.1     mod_ssl.x86_64 1:2.2.3-53.el5.centos.1

Complete!
[root@rails01 ~]#

■Passengerのインストール
[root@rails01 ~]# gem install passenger
Building native extensions.  This could take a while...
Successfully installed fastthread-1.0.7
Successfully installed daemon_controller-0.2.6
Successfully installed passenger-3.0.9
3 gems installed
Installing ri documentation for fastthread-1.0.7...
Installing ri documentation for daemon_controller-0.2.6...
Installing ri documentation for passenger-3.0.9...
Installing RDoc documentation for fastthread-1.0.7...
Installing RDoc documentation for daemon_controller-0.2.6...
Installing RDoc documentation for passenger-3.0.9...


■Apacheモジュールのビルドとインストール
[root@rails01 ~]# passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v3.0.9.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.


--------------------------------------------

Checking for required software...

 * GNU C++ compiler... found at /usr/bin/g++
 * Curl development headers with SSL support... found
 * OpenSSL development headers... found
 * Zlib development headers... found
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /usr/local/bin/rake
 * rack... found
 * Apache 2... found at /usr/sbin/httpd
 * Apache 2 development headers... found at /usr/sbin/apxs
 * Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-1-config
 * Apache Portable Runtime Utility (APU) development headers... found at /usr/bin/apu-1-config

--------------------------------------------
Compiling and installing Apache 2 module...
cd /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9
(中略)

--------------------------------------------
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9
   PassengerRuby /usr/local/bin/ruby

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!

Press ENTER to continue.


--------------------------------------------
Deploying a Ruby on Rails application: an example

Suppose you have a Rails application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:

   
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      
   

And that's it! You may also want to check the Users Guide for security and
optimization tips, troubleshooting and other useful information:

  /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/doc/Users guide Apache.html

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
http://www.modrails.com/

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
[root@rails01 ~]#

■passenger.confの作成
[root@rails01 ~]# vi /etc/httpd/conf.d/passenger.conf
[root@rails01 ~]# cat /etc/httpd/conf.d/passenger.conf
# 20110920 output ob "passenger-install-apache2-module"
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9
PassengerRuby /usr/local/bin/ruby

# rails settings
RailsBaseURI /sample


⇒VirtualHostは使用せずにシンボリックリンクで対応。
[root@rails01 ~]# cd /var/www/html/
[root@rails01 html]# ln -s /root/rails_projects/sample/public sample

⇒apacheアカウントでアクセスできるようchange owner
[root@rails01 ~]# chown -R apache: /root/rails_projects/sample

⇒httpd再起動
[root@rails01 ~]# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]


■ブラウザで確認
http://192.168.1.12/sample

Forbidden
You don't have permission to access /sample on this server.
------------------------------------------------------------------
Apache/2.2.3 (CentOS) Server at 192.168.1.12 Port 80

⇒apacheアカウントにowner変更しても/rootディレクトリ以下にはアクセスできないようだ…。


■Rubyプロジェクトディレクトリの変更
[root@rails01 ~]# cp -pr /root/rails_projects /

⇒シンボリックリンクも貼り直し
[root@rails01 ~]# cd /var/www/html/
[root@rails01 html]# rm sample
rm: remove シンボリックリンク `sample'? y
[root@rails01 html]# ln -s /rails_projects/sample/public sample

⇒httpd再起動し、ブラウザで確認
http://192.168.1.12/sample

passengerのエラー画面が表示される
Ruby on Rails application could not be started
Error message:
Unknown database 'sample_production' (Mysql2::Error)

デフォルトではproductionデータベースにアクセスしているようなので、passenger.confを修正
ちなみに、WEBrickで起動すれば問題なくアクセス可能
http://192.168.1.12:3000/

[root@rails01 ~]# vi /etc/httpd/conf.d/passenger.conf
[root@rails01 ~]# cat /etc/httpd/conf.d/passenger.conf
# 20110920 output ob "passenger-install-apache2-module"
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9
PassengerRuby /usr/local/bin/ruby

# rails settings
RailsBaseURI /sample
RailsEnv development
[root@rails01 ~]#

⇒httpd再起動し、ブラウザで確認
http://192.168.1.12/sample →デフォルトページ(Welcome aboard)が表示される
http://192.168.1.12/sample/tbl_vms →前回scaffoldで作成したページが表示される

2011年9月20日火曜日

scaffoldでサンプル作成

■テーブル定義
テーブル名:tbl_vms
 VM名:vm_name:string
 備考:remarks:text
 所有者ID:owner_id:integer

■scaffold実施
[root@rails01 ~]# cd rails_projects/sample/
[root@rails01 sample]# rails g scaffold tbl_vms vm_name:string remarks:text owner_id:integer
Plural version of the model detected, using singularized version. Override with --force-plural.
      invoke  active_record
      create    db/migrate/20110919145646_create_tbl_vms.rb
      create    app/models/tbl_vm.rb
      invoke    test_unit
      create      test/unit/tbl_vm_test.rb
      create      test/fixtures/tbl_vms.yml
       route  resources :tbl_vms
      invoke  scaffold_controller
      create    app/controllers/tbl_vms_controller.rb
      invoke    erb
      create      app/views/tbl_vms
      create      app/views/tbl_vms/index.html.erb
      create      app/views/tbl_vms/edit.html.erb
      create      app/views/tbl_vms/show.html.erb
      create      app/views/tbl_vms/new.html.erb
      create      app/views/tbl_vms/_form.html.erb
      invoke    test_unit
      create      test/functional/tbl_vms_controller_test.rb
      invoke    helper
      create      app/helpers/tbl_vms_helper.rb
      invoke      test_unit
      create        test/unit/helpers/tbl_vms_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/tbl_vms.js.coffee
      invoke    scss
      create      app/assets/stylesheets/tbl_vms.css.scss
      invoke  scss
      create    app/assets/stylesheets/scaffolds.css.scss
[root@rails01 sample]#

■テーブル作成
[root@rails01 sample]# rake db:migrate
(in /root/rails_projects/sample)
==  CreateTblVms: migrating ===================================================
-- create_table(:tbl_vms)
   -> 0.0400s
==  CreateTblVms: migrated (0.0405s) ==========================================

[root@rails01 sample]#

⇒mysql上で確認
mysql> show tables;
+------------------------------+
| Tables_in_sample_development |
+------------------------------+
| schema_migrations            |
| tbl_vms                      |
+------------------------------+
2 rows in set (0.00 sec)

mysql> desc tbl_vms;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
| vm_name    | varchar(255) | YES  |     | NULL    |                |
| remarks    | text         | YES  |     | NULL    |                |
| owner_id   | int(11)      | YES  |     | NULL    |                |
| created_at | datetime     | YES  |     | NULL    |                |
| updated_at | datetime     | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

■ブラウザで確認
http://192.168.1.14:3000/tbl_vms/

2011年9月19日月曜日

CentOS5.7にRuby1.9.2インストール

■OSバンドルのRuby有無確認
[root@rails01 ~]# rpm -qa | grep ruby
[root@rails01 ~]#
⇒既存Rubyは存在しないのでOK!


■インストーラダウンロード
ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
smb経由でサーバのsrcディレクトリにアップロード。


■インストール
[root@rails01 ~]# cd /home/public/src/
[root@rails01 src]# tar -zxf ruby-1.9.2-p290.tar.gz
[root@rails01 src]# cd ruby-1.9.2-p290
[root@rails01 ruby-1.9.2-p290]# ./configure --prefix=/usr/local
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
(中略)
ruby library version = 1.9.1
configure: creating ./config.status
config.status: creating Makefile

[root@rails01 ruby-1.9.2-p290]# make
gcc -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initiali                                    zers -Wno-long-long -I. -I.ext/include/x86_64-linux -I./include -I. -DRUBY_EXPORT   -o main.o -c main.c
gcc -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initiali                                    zers -Wno-long-long -I. -I.ext/include/x86_64-linux -I./include -I. -DRUBY_EXPORT   -o dln.o -c dln.c
(中略:10分くらい)
Generating file member index...
Generating page index...
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  -e 'File.open("doc/capi/.timestamp", "w"){|f| f.puts(Time.now)}'

[root@rails01 ruby-1.9.2-p290]# make install
(中略)
installing manpages:          /usr/local/ruby/share/man/man1
installing default gems:      /usr/local/ruby/lib/ruby/gems/1.9.1 (cache, doc, gems, specifications)
                              rake 0.8.7
                              rdoc 2.5.8
                              minitest 1.6.0
⇒バージョン確認
[root@rails01 ~]# ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
[root@rails01 ~]# gem -v
1.3.7


■Railsインストール
[root@rails01 ~]# gem install rails
Building native extensions.  This could take a while...
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Successfully installed multi_json-1.0.3
Successfully installed activesupport-3.1.0
Successfully installed builder-3.0.0
Successfully installed i18n-0.6.0
Successfully installed bcrypt-ruby-3.0.1
Successfully installed activemodel-3.1.0
Successfully installed rack-1.3.3
Successfully installed rack-cache-1.0.3
Successfully installed rack-test-0.6.1
Successfully installed rack-mount-0.8.3
Successfully installed hike-1.2.1
Successfully installed tilt-1.3.3
Successfully installed sprockets-2.0.0
Successfully installed erubis-2.7.0
Successfully installed actionpack-3.1.0
Successfully installed arel-2.2.1
Successfully installed tzinfo-0.3.29
Successfully installed activerecord-3.1.0
Successfully installed activeresource-3.1.0
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.2
Successfully installed treetop-1.4.10
Successfully installed mail-2.3.0
Successfully installed actionmailer-3.1.0
Successfully installed thor-0.14.6
Successfully installed rack-ssl-1.3.2
Successfully installed rdoc-3.9.4
Successfully installed railties-3.1.0
Successfully installed bundler-1.0.18
Successfully installed rails-3.1.0
30 gems installed
Installing ri documentation for multi_json-1.0.3...
Installing ri documentation for activesupport-3.1.0...
Installing ri documentation for builder-3.0.0...
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README, skipping
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README.rdoc, skipping
Installing ri documentation for i18n-0.6.0...
Installing ri documentation for bcrypt-ruby-3.0.1...
Installing ri documentation for activemodel-3.1.0...
Installing ri documentation for rack-1.3.3...
Installing ri documentation for rack-cache-1.0.3...
Installing ri documentation for rack-test-0.6.1...
Installing ri documentation for rack-mount-0.8.3...
Installing ri documentation for hike-1.2.1...
Installing ri documentation for tilt-1.3.3...
Installing ri documentation for sprockets-2.0.0...
Installing ri documentation for erubis-2.7.0...
Installing ri documentation for actionpack-3.1.0...
Installing ri documentation for arel-2.2.1...
Installing ri documentation for tzinfo-0.3.29...
Installing ri documentation for activerecord-3.1.0...
Installing ri documentation for activeresource-3.1.0...
Installing ri documentation for mime-types-1.16...
Installing ri documentation for polyglot-0.3.2...
Installing ri documentation for treetop-1.4.10...
Installing ri documentation for mail-2.3.0...
Installing ri documentation for actionmailer-3.1.0...
Installing ri documentation for thor-0.14.6...
Installing ri documentation for rack-ssl-1.3.2...
Installing ri documentation for rdoc-3.9.4...
Installing ri documentation for railties-3.1.0...
Installing ri documentation for bundler-1.0.18...
Installing ri documentation for rails-3.1.0...
file 'lib' not found
Installing RDoc documentation for multi_json-1.0.3...
Installing RDoc documentation for activesupport-3.1.0...
Installing RDoc documentation for builder-3.0.0...
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README, skipping
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README.rdoc, skipping
Installing RDoc documentation for i18n-0.6.0...
Installing RDoc documentation for bcrypt-ruby-3.0.1...
Installing RDoc documentation for activemodel-3.1.0...
Installing RDoc documentation for rack-1.3.3...
Installing RDoc documentation for rack-cache-1.0.3...
Installing RDoc documentation for rack-test-0.6.1...
Installing RDoc documentation for rack-mount-0.8.3...
Installing RDoc documentation for hike-1.2.1...
Installing RDoc documentation for tilt-1.3.3...
Installing RDoc documentation for sprockets-2.0.0...
Installing RDoc documentation for erubis-2.7.0...
Installing RDoc documentation for actionpack-3.1.0...
Installing RDoc documentation for arel-2.2.1...
Installing RDoc documentation for tzinfo-0.3.29...
Installing RDoc documentation for activerecord-3.1.0...
Installing RDoc documentation for activeresource-3.1.0...
Installing RDoc documentation for mime-types-1.16...
Installing RDoc documentation for polyglot-0.3.2...
Installing RDoc documentation for treetop-1.4.10...
Installing RDoc documentation for mail-2.3.0...
Installing RDoc documentation for actionmailer-3.1.0...
Installing RDoc documentation for thor-0.14.6...
Installing RDoc documentation for rack-ssl-1.3.2...
Installing RDoc documentation for rdoc-3.9.4...
Installing RDoc documentation for railties-3.1.0...
Installing RDoc documentation for bundler-1.0.18...
Installing RDoc documentation for rails-3.1.0...
file 'lib' not found

⇒バージョン確認
[root@rails01 ~]# rails --version
Rails 3.1.0


■サンプルプロジェクト作成
[root@rails01 ~]# mkdir rails_projects
[root@rails01 ~]# cd rails_projects/
[root@rails01 rails_projects]# rails new sample -d mysql
      create
      create  README
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/assets/images/rails.png
      create  app/assets/javascripts/application.js
      create  app/assets/stylesheets/application.css
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/mailers
      create  app/models
      create  app/views/layouts/application.html.erb
      create  app/mailers/.gitkeep
      create  app/models/.gitkeep
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/secret_token.rb
      create  config/initializers/session_store.rb
      create  config/initializers/wrap_parameters.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  doc
      create  doc/README_FOR_APP
      create  lib
      create  lib/tasks
      create  lib/tasks/.gitkeep
      create  lib/assets
      create  lib/assets/.gitkeep
      create  log
      create  log/.gitkeep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
      create  script
      create  script/rails
      create  test/fixtures
      create  test/fixtures/.gitkeep
      create  test/functional
      create  test/functional/.gitkeep
      create  test/integration
      create  test/integration/.gitkeep
      create  test/unit
      create  test/unit/.gitkeep
      create  test/performance/browsing_test.rb
      create  test/test_helper.rb
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor/assets/stylesheets
      create  vendor/assets/stylesheets/.gitkeep
      create  vendor/plugins
      create  vendor/plugins/.gitkeep
         run  bundle install
Fetching source index for http://rubygems.org/
Installing rake (0.9.2)
Using multi_json (1.0.3)
Using activesupport (3.1.0)
Using bcrypt-ruby (3.0.1)
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.0)
Using erubis (2.7.0)
Using rack (1.3.3)
Using rack-cache (1.0.3)
Using rack-mount (0.8.3)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.0.0)
Using actionpack (3.1.0)
Using mime-types (1.16)
Using polyglot (0.3.2)
Using treetop (1.4.10)
Using mail (2.3.0)
Using actionmailer (3.1.0)
Using arel (2.2.1)
Using tzinfo (0.3.29)
Using activerecord (3.1.0)
Using activeresource (3.1.0)
Installing ansi (1.3.0)
Using bundler (1.0.18)
Installing coffee-script-source (1.1.2)
Installing execjs (1.2.6)
Installing coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using rdoc (3.9.4)
Using thor (0.14.6)
Using railties (3.1.0)
Installing coffee-rails (3.1.1)
Installing jquery-rails (1.0.14)
Installing mysql2 (0.3.7) with native extensions
Using rails (3.1.0)
Installing sass (3.1.7)
Installing sass-rails (3.1.2)
Installing turn (0.8.2)
Installing uglifier (1.0.3)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
[root@rails01 rails_projects]#


■データベース準備
[root@rails01 ~]# /etc/init.d/mysqld start
MySQL を起動中:                                            [  OK  ]

⇒プロジェクトディレクトリに移動してデータベース作成
[root@rails01 ~]# cd /root/rails_projects/sample/
[root@rails01 sample]# rake db:create
(in /root/rails_projects/sample)
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.2.6/lib/execjs/runtimes.rb:46:in `autodetect'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.2.6/lib/execjs.rb:5:in `'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.2.6/lib/execjs.rb:4:in `'
(中略)
/usr/local/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/local/bin/rake:31:in `
' ⇒上記エラー対応のためGemfile修正 [root@rails01 sample]# vi Gemfile [root@rails01 sample]# head Gemfile source 'http://rubygems.org' gem 'rails', '3.1.0' # add 20110919 gem 'therubyracer' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' [root@rails01 sample]# bundle update Fetching source index for http://rubygems.org/ (中略) Installing therubyracer (0.9.4) with native extensions Using turn (0.8.2) Using uglifier (1.0.3) Your bundle is updated! Use `bundle show [gemname]` to see where a bundled gem is installed. ⇒再びデータベース作成 [root@rails01 sample]# rake db:create (in /root/rails_projects/sample) rake aborted! uninitialized constant Rake::DSL /usr/local/lib/ruby/1.9.1/rake.rb:2482:in `const_missing' (後略) ⇒上記エラー対応のためGemfile修正 [root@rails01 sample]# vi Gemfile [root@rails01 sample]# head Gemfile source 'http://rubygems.org' gem 'rails', '3.1.0' # add 20110919 gem 'therubyracer' gem 'rake', '0.8.7' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' [root@rails01 sample]# bundle update Fetching source index for http://rubygems.org/ Using rake (0.8.7) Using multi_json (1.0.3) (後略) ⇒再びデータベース作成 [root@rails01 sample]# rake db:create (in /root/rails_projects/sample) [root@rails01 sample]# mysqlshow +--------------------+ | Databases | +--------------------+ | information_schema | | mysql | | sample_development | | sample_test | | test | +--------------------+ データベースが作成された!! ■Webサーバ起動 [root@rails01 sample]# rails s => Booting WEBrick => Rails 3.1.0 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2011-09-19 22:43:01] INFO WEBrick 1.3.1 [2011-09-19 22:43:01] INFO ruby 1.9.2 (2011-07-09) [x86_64-linux] [2011-09-19 22:43:01] INFO WEBrick::HTTPServer#start: pid=12327 port=3000 または、 [root@rails01 sample]# rails s > log/WEBrick.log & [1] 25595 ■ブラウザで確認 http://192.168.1.14:3000/

2011年9月18日日曜日

CentOS5.7バンドルのMySQL

★RubyOnRailsのデータベースとしてMySQLを準備

■OSバンドルのmysqlモジュール確認
[root@rails01 ~]# rpm -qa | grep mysql
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-5.0.77-4.el5_6.6
mysql-server-5.0.77-4.el5_6.6
mysql-5.0.77-4.el5_6.6
mysql-connector-odbc-3.51.26r1127-1.el5
⇒mysql-develがない!

■mysql-develインストール
[root@rails01 ~]# yum install mysql-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.i386 0:5.0.77-4.el5_6.6 set to be updated
---> Package mysql-devel.x86_64 0:5.0.77-4.el5_6.6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                       Arch                     Version                            Repository              Size
========================================================================================================================
Installing:
 mysql-devel                   i386                     5.0.77-4.el5_6.6                   base                   2.4 M
 mysql-devel                   x86_64                   5.0.77-4.el5_6.6                   base                   2.5 M

Transaction Summary
========================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 4.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): mysql-devel-5.0.77-4.el5_6.6.i386.rpm                                                     | 2.4 MB     00:01
(2/2): mysql-devel-5.0.77-4.el5_6.6.x86_64.rpm                                                   | 2.5 MB     00:00
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   2.1 MB/s | 4.9 MB     00:02
警告: rpmts_HdrFromFdno: ヘッダ V3 DSA signature: NOKEY, key ID e8562897
base/gpgkey                                                                                      | 1.5 kB     00:00
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) " from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : mysql-devel                                                                                      1/2
  Installing     : mysql-devel                                                                                      2/2

Installed:
  mysql-devel.i386 0:5.0.77-4.el5_6.6                       mysql-devel.x86_64 0:5.0.77-4.el5_6.6

Complete!
[root@rails01 ~]# rpm -qa | grep mysql
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-5.0.77-4.el5_6.6
mysql-devel-5.0.77-4.el5_6.6
mysql-server-5.0.77-4.el5_6.6
mysql-5.0.77-4.el5_6.6
mysql-connector-odbc-3.51.26r1127-1.el5
mysql-devel-5.0.77-4.el5_6.6


■データベース初期化
[root@rails01 ~]# /etc/init.d/mysqld start
MySQL データベースを初期化中:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h rails01 password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
                                                           [  OK  ]
MySQL を起動中:                                            [  OK  ]

⇒起動確認
[root@rails01 ~]# mysqlshow
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+

⇒停止
[root@rails01 ~]# /etc/init.d/mysqld stop
MySQL を停止中:                                            [  OK  ]

2011年9月17日土曜日

CentOS5.7インストールパッケージ

★RubyOnRails用として仮想サーバをCentOSで構築。
⇒MySQLはOSバンドルを利用予定。
⇒RubyおよびRailsは最新版をインストール予定。

■OSインストール時のパッケージ選択
-----------------------------------------------------------
【デスクトップ環境】
 ■ GNOMEデスクトップ環境
 □ KDE(Kデスクトップ環境)

【アプリケーション】
 □ Emacs
 □ Office/生産性
 ■ エディタ
 ■ グラフィカルインターネット
 ■ グラフィクス
 □ ゲームと娯楽
 ■ サウンドとビデオ
 □ テキストベースのインターネット
 □ 技術系と科学系
 □ 著作権と発行

【開発】
 □ GNOMEソフトウェア開発
 ■ Java開発
 □ KDEソフトウェア開発
 □ Ruby
 □ Xソフトウェア開発
 ■ レガシーなソフトウェアの開発
 ■ 開発ツール
 ■ 開発ライブラリ

【サーバー】
 □ DNSネームサーバー
 ■ FTPサーバー
 ■ MySQLデータベース
 □ PostgreSQLデータベース
 ■ Webサーバー
 ■ Windowsファイルサーバー
 ■ サーバー設定ツール
 □ ニュースサーバー 
 □ ネットワークサーバー
 □ メールサーバー
 □ レガシーなネットワークサーバー
 □ 印刷サポート

【ベースシステム】
 ■ Java
 ■ OpenFabrics Enterprise ディストリビューション
 ■ X Window System
 ■ システムツール
 □ ダイヤルアップネットワークサポート
 ■ ベース
 ■ レガシーなソフトウェアのサポート
 ■ 管理ツール

【仮想化】
 □ KVM
 □ 仮想化

【クラスタリング】
 □ クラスタリング

【クラスタストレージ】
 □ クラスタストレージ

【言語】
 ■ 日本語のサポート