hogehoge foobar Blog Style Beta

Web,Mac,Linux,JavaScript,Perl,PHP,RegExp,Git,Vim,Redmineなど技術的なことのメモや、ちょっと便利そうなものの紹介をしています。

CentOSへRedmine1.1.0をインストール

以前にUbuntuRedmineをインストールしました。
Ubuntu10.4でRedmine1.0.1(まとめ直し版) - hogehoge foobar Blog Style5

今回はCentOSにインストールしてみました。
今回はWebRickでの起動までです。Apache(passenger)との連携は後日やる予定です。

インストールの大筋については、
www.sakuttoly.com - サクッとCentOS 5.3にRedmine + Passenger環境をインストール
を参考にさせてもらっています。

とりあえずrootになる

Ubuntuではrootログインが出来ないため「sudo」を使っていましたが、CentOSはrootログインできるので、まずはrootになります。

$ su - root
パスワード:
[root@centos ~]# 

いろいろと事前準備

gcc等、必要になるものを事前にインストールしておきます。

yumをアップデート
# yum -y update
gccをインストール
# yum -y install gcc
Installed:
  gcc.i386 0:4.1.2-48.el5                                                                                       

Dependency Installed:
  cpp.i386 0:4.1.2-48.el5                             glibc-devel.i386 0:2.5-49.el5_5.7                        
  glibc-headers.i386 0:2.5-49.el5_5.7                 kernel-headers.i386 0:2.6.18-194.32.1.el5                
  libgomp.i386 0:4.4.0-6.el5                         

Complete!
#
# gcc -v
Using built-in specs.
Target: i386-redhat-linux
コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux
スレッドモデル: posix
gcc バージョン 4.1.2 20080704 (Red Hat 4.1.2-48)
kernel-devel zlib-devel openssl-develのインストール
# yum -y install kernel-devel zlib-devel openssl-devel
Installed:
  kernel-devel.i686 0:2.6.18-194.32.1.el5   openssl-devel.i386 0:0.9.8e-12.el5_5.7   zlib-devel.i386 0:1.2.3-3  

Dependency Installed:
  e2fsprogs-devel.i386 0:1.39-23.el5_5.1                 keyutils-libs-devel.i386 0:1.2-1.el5                  
  krb5-devel.i386 0:1.6.1-36.el5_5.6                     libselinux-devel.i386 0:1.33.4-5.5.el5                
  libsepol-devel.i386 0:1.15.2-3.el5                    

Complete!

mysqlのインストール/設定

mysql-serverをインストールします。

mysqlをアップデート
# yum -y install mysql-server
Installed:
  mysql-server.i386 0:5.0.77-4.el5_5.4                                                                          

Dependency Installed:
  mysql.i386 0:5.0.77-4.el5_5.4       perl-DBD-MySQL.i386 0:3.0007-2.el5       perl-DBI.i386 0:1.52-2.el5      

Complete!
#
# mysql --version
mysql  Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1
設定ファイル(/etc/my.cnf)の変更

雛形となる設定ファイルを/etc/my.cnfに上書きコピーします。
※念のため、上書きする前にファイルのバックアップをしておきます。

# cp -p /etc/my.cnf /etc/my.cnf.org
# cp -p /usr/share/mysql/my-medium.cnf /etc/my.cnf

vimで/etc/my.cnfを開いて設定ファイルに文字コードの設定を追記します。

 vi /etc/my.cnf

[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock

read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-character-set = utf8      # ここに追記

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
default-character-set = utf8      # ここにも追記
mysqlの起動と起動設定
mysqlの起動

ここまででmysqlの設定が終わったので、mysqlを起動させてみます。

# /etc/rc.d/init.d/mysqld start
Support MySQL by buying support/licenses at http://shop.mysql.com
                                                           [  OK  ]
MySQL を起動中:                                            [  OK  ]
OS起動時にmysqlを起動させる設定

OS起動時にmysqlが自動で起動されるように、「chkconfigコマンド」で設定をします。

# chkconfig mysqld on
# chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
Redmine用のデータベースを作成

Redmineで使用するデータベースを作成します。

# mysql -u root
mysql> grant all on *.* to redmine@"localhost"identified by 'パスワード';
Query OK, 0 rows affected (0.01 sec)
mysql> exit
#
# mysql -u redmine -p
Enter password: 

mysql> create database redmine;
Query OK, 1 row affected (0.00 sec)

mysql> show create database redmine;

+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| redmine  | CREATE DATABASE `redmine` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> exit

Ruby/Gem/Railsのインストール

Redmineの基本となる、Ruby/Gem/Railsをインストールします。

Rubyのインストール

Rubyをインストールします。yumだと最新バージョンに対応していない場合があるので、ソースからインストールします。

# cd /usr/local/src/
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p160.tar.gz
# tar xzvf ruby-1.8.7-p160.tar.gz
# cd ruby-1.8.7-p160
# ./configure --prefix=/usr
# make
# make test
test succeeded
# make install
# ruby -v
ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-linux]
RubyGemのインストール

gemをインストールします。インストールには「ruby setup.rb 」を実行します。

# wget http://rubyforge.org/frs/download.php/73882/rubygems-1.4.2.tgz
# tar xzvf rubygems-1.4.2.tgz 
# cd rubygems-1.4.2
# ruby setup.rb 

RubyGems installed the following executables:
	/usr/bin/gem

# gem -v
1.4.2
Railsのインストール

Railsをインストールします。Railsはgemからインストールします。
下記の例ではバージョンを「2.2.2」に指定してインストールしています。

# gem install rails -y -v 2.2.2

Successfully installed activesupport-2.2.2
Successfully installed activerecord-2.2.2
Successfully installed actionpack-2.2.2
Successfully installed actionmailer-2.2.2
Successfully installed activeresource-2.2.2
Successfully installed rails-2.2.2
6 gems installed

# rails -v
Rails 2.2.2

Redmineのダウンロード/設定

Redmineのダウンロード

Redmine本体をダウンロードし、解凍します。

# wget http://rubyforge.org/frs/download.php/73900/redmine-1.1.0.tar.gz
# tar xzvf redmine-1.1.0.tar.gz
database.ymlの設定

次にconfig/database.ymlの設定をします。

# cd config/
# cp -p database.yml.example database.yml
# vim database.yml

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine     # mysqlのredmineのユーザーID
  password: パスワード  # mysqlのredmineのパスワード
  encoding: utf8
  socket: /var/lib/mysql/mysql.sock   # 追記する

Redmineのdb:migrateが失敗する その1

ここまでで、Redmineからmysqlへの接続設定ができたので、db:migrateします。

db:migrateが失敗

gemの「i18n」をインストールしろというエラーが発生しました。

# rake db:migrate RAILS_ENV="production"
(in /var/www/html/redmine)
Missing the i18n 0.4.2 gem. Please `gem install -v=0.4.2 i18n`
「i18n」をインストール

エラーメッセージにしたがって、gemから「i18n」をインストールします。

# gem install -v=0.4.2 i18n
Fetching: i18n-0.4.2.gem (100%)
Successfully installed i18n-0.4.2
1 gem installed
Installing ri documentation for i18n-0.4.2...
Installing RDoc documentation for i18n-0.4.2...

Redmineのdb:migrateが失敗する その2

「i18n」のインストールができたので、もう一度db:migrateしてみます。

またdb:migrateが失敗

今度は、rackのバージョンが違うというエラーが発生しました。

# rake db:migrate RAILS_ENV="production"
(in /var/www/html/redmine)
rake aborted!
RubyGem version error: rack(1.2.1 not ~> 1.0.1)

(See full trace by running task with --trace)
action_controller.rbを変更

「vendor/rails/actionpack/lib/action_controller.rb」にrackのバージョンが書かれている部分があるので、そこを変更します。

# vim vendor/rails/actionpack/lib/action_controller.rb

#gem 'rack', '~> 1.0.1' → コメント化
gem 'rack', '~> 1.2.1'

Redmineのdb:migrateが失敗する その3

もう一度、db:migrateにトライしてみます。

またまた、db:migrateが失敗

今度はセッションの設定が出来ていないというようなエラーが発生しました

# rake db:migrate RAILS_ENV="production"
(in /var/www/html/redmine)
rake aborted!
A key is required to write a cookie containing the session data. Use config.action_controller.session = { :key => "_myapp_session", :secret => "some secret phrase" } in config/environment.rb

(See full trace by running task with --trace)
「session_store.rb」を実行

「rake config/initializers/session_store.rb」を実行して、セッション情報の設定をします。

# rake config/initializers/session_store.rb
(in /var/www/html/redmine)

Redmineのdb:migrateが失敗する その4

諦めずに、もう一度db:migrateにトライしてみます。

またまたまた、db:migrateが失敗

今度はmysqlのドライバが無い?古い?というようなエラーが発生しました

# rake db:migrate RAILS_ENV="production"
(in /var/www/html/redmine)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load -- mysql

(See full trace by running task with --trace)
「gem install mysql」も失敗

とりあえず、gemからmysqlをインストールしてみますが、失敗します。

# gem install mysql
Fetching: mysql-2.8.1.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
	ERROR: Failed to build gem native extension.
mysql-develをインストール

僕は木になりたい。。。 Rails2.2 で db migrate でハマる。 - livedoor Blog(ブログ)
を参考にして、yumからmysql-develをインストールします。

# yum install mysql-devel

Transaction Test Succeeded
Running Transaction
  Installing     : mysql-deve

Installed:
  mysql-devel.i386 0:5.0.77-4.el5_5.4            

Complete!

Redmineのdb:migrateが、ようやく成功

今度こそ!諦めずに、もう一度db:migrateにトライしてみます。

db:migrateが成功!

今度は成功しました。

# rake db:migrate RAILS_ENV="production"
初期データの登録/設定

db:migrate成功したので、初期データの登録と設定をします。

# rake load_default_data RAILS_ENV="production"
Select language: bg, ca, cs, da, de, en, es, fi, fr, he, hu, it, ja, ko, lt, nl, no, pl, pt, pt-br, ro, ru, sk, sr, sv, th, tr, uk, vn, zh, zh-tw [en] ja

WEBrickを起動して、ブラウザからアクセス

これで、インストール/設定がひと通り完了したので、WEBrickさせてブラウザからアクセスします。

WEBrickの起動

WEBrickの起動をさせます。
下記の例ではポート番号を80で起動させてみています。

# script/server -e production --port 80
=> Booting WEBrick
=> Rails 2.3.5 application starting on http://0.0.0.0:80
/var/www/html/redmine/config/../vendor/rails/railties/lib/rails/gem_dependency.rb:119:Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010.  Use #requirement
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-01-16 13:53:55] INFO  WEBrick 1.3.1
[2011-01-16 13:53:55] INFO  ruby 1.8.7 (2009-04-08) [i686-linux]
[2011-01-16 13:53:55] INFO  WEBrick::HTTPServer#start: pid=8985 port=80
ブラウザからアクセス

ブラウザから、「http://localhost/ 」などにアクセスし、Redmineのページが表示されれば成功です。

今回参考にしたページ

www.sakuttoly.com - サクッとCentOS 5.3にRedmine + Passenger環境をインストール
http://www.sakuttoly.com/blog/2009/04/redmine_passenger_centos.html

Macでnginx+redmineを設置してみたので手順を記した - Perl日誌
http://d.hatena.ne.jp/okamuuu/20110115/1295058479

gemでバージョン指定してインストール|BACCASS Labs - iPhone Apps Etc.
http://ameblo.jp/eisho2/entry-10252442569.html

僕は木になりたい。。。 Rails2.2 で db migrate でハマる。 - livedoor Blog(ブログ)
http://blog.emosei.com/archives/51825721.html

WEBrick(Vine4.1) 好きなモノを好きなだけ
http://hamutaro.cocolog-nifty.com/suki/2007/08/webrickvine41.html