Amazon EC2 にRedmine 1.2 をインストールする手順

 

必要なパッケージのインストール

yum groupinstall "Development Tools"
yum install openssl-devel readline-devel zlib-devel curl-devel
yum install mysql-server mysql-devel
yum install httpd httpd-devel

 

Ruby Enterprise Editionをインストール

wget http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2011.03.tar.gz
tar xvfz ruby-enterprise-1.8.7-2011.03.tar.gz
ruby-enterprise-1.8.7-2011.03/installer --dont-install-useful-gems --no-dev-docs

途中でインストール先(Target Directory)の入力を求められるが、今回はそのままエンター。

 

gemのインストール

wget http://rubyforge.org/frs/download.php/74954/rubygems-1.8.5.tgz
tar xzvf rubygems-1.8.5.tgz
cd rubygems-1.8.5
ruby setup.rb
gem -v
cd ..

 

Rack 1.1.1のインストール

Redmine1.2を実行するために必ずRack 1.1.1のバージョンにする。

gem install rack -v=1.1.1 --no-rdoc --no-ri

 

rake 0.8.7のインストール

Redmine1.2を実行するために必ずrake 0.8.7のバージョンにする。

gem install rake -v=0.8.7 --no-rdoc --no-ri

 

i18n 0.4.2のインストール

Redmine1.2を実行するために必ずi18n 0.4.2のバージョンにする。

gem install i18n -v=0.4.2 --no-rdoc --no-ri

 

Ruby用MySQLドライバのインストール

yum install ruby-devel

上のコマンドを先に打たないとエラーが出た。

gem install mysql --no-rdoc --no-ri

デフォルトキャラクタセットをutf8に設定。

vi /etc/my.cnf

以下の太字部分を追加。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set=utf8

MySQLの起動および自動起動の設定。

/etc/init.d/mysqld start
chkconfig mysqld on

以下で
character_set_filesystem
character_sets_dir
以外、すべてutf8になっていることを確認。
なっていなければ、my.cnfの設定が正しいか、MySQLの再起動を行ったか確かめる。

mysql -uroot
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)

rootユーザーのパスワード変更・匿名ユーザー削除。

mysql -u root
mysql> use mysql;
mysql> update user set password=password('********') where user = 'root';
mysql> delete from user where user = '';
mysql> flush privileges;
mysql> exit;

上の********には任意のパスワード。

 

Redmine用データベースとユーザーの作成。

mysql -u root -p
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine identified by '********';
mysql> flush privileges;
mysql> exit;

上の********には任意のパスワード。

 

Redmineのインストール

wget http://rubyforge.org/frs/download.php/74944/redmine-1.2.0.tar.gz
tar zxvf redmine-1.2.0.tar.gz

Redmineの配置先のディレクトリ決めて、そこに展開したファイルを移動させる。
ここでは/var/lib/redmineとする。

mv redmine-1.2.0 /var/lib/redmine
cd /var/lib/redmine
vi config/database.yml

以下の内容で保存。

production:
adapter: mysql
database: db_redmine
host: localhost
username: user_redmine
password: ********
encoding: utf8

‘********には先ほど設定したパスワードを入力。

 

configuration.yml.exampleをコピーしてconfig/configuration.ymlファイルを作成する。

vi config/configuration.yml

以下を追加して保存する。

production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "localhost"
port: 25
domain: 'foo.com'

foo.comにはRedmineを実行するサーバのFQDNを入力。

 

セッションデータ暗号化用鍵の生成とテーブル作成を行う。

rake generate_session_store
rake db:migrate RAILS_ENV=production

 

Passengerのインストール

gem install passenger --no-rdoc --no-ri

 

PassengerのApache用モジュールのインストール

passenger-install-apache2-module

インストール成功後に表示される以下のメッセージの太字部分3行を記録しておく。
apache2-module –snippetコマンドであとからも見られるみたいだが、違っていた。

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.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
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.

 

Apacheの設定

vi /etc/sysconfig/httpd

以下の部分をコメントインして保存。

HTTPD=/usr/sbin/httpd.worker
vi /etc/httpd/conf.d/passnger.conf

以下のように編集して保存。

# Passengerの基本設定。
#
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
PassengerRuby /usr/local/bin/ruby
# 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

太字部分には先ほど記録した3行を上書きする。

 

Apacheの起動および自動起動の設定。

/etc/init.d/httpd start
chkconfig httpd on

 

Apache上のPassengerでRedmineを実行するための設定

chown -R apache:apache /var/lib/redmine

webサーバのルートディレクトリでRedmineを実行するための設定を行う。

vi /etc/httpd/conf/httpd.conf

以下のように、DocumentRootをRedmineのpublicディレクトリに変更して保存。

#DocumentRoot "/var/www/html"
DocumentRoot "/var/lib/redmine/public"
/etc/init.d/httpd configtest
/etc/init.d/httpd graceful

 

エラーが出ているのでここから先はいろいろ試してみたコマンド一覧

Apacheの再起動。

/etc/rc.d/init.d/httpd restart
/etc/rc.d/init.d/httpd restart

「undefined method `name’ for “abstract”:String」エラーが出る場合。

gem update --system 1.7.2
gem -v

以下のエラーが出る場合。
ActiveRecord::StatementInvalid (Mysql::Error: Table ‘db_redmine.settings’ doesn’t exist: SHOW FIELDS FROM `settings`):

rake db:migrate RAILS_ENV="production"

それでもエラーの場合、以下あたりを参考にする。
http://unicus.jp/wp/archives/46
http://applescripts.seesaa.net/article/163907530.html

転職活動の始め方

3回転職してきた僕が、転職を考えたら最初に見ておくべきサイトをまとめました。

今では働き方も多種多様。あなたに合った仕事を見つけましょう。

この記事をシェアする