AWSのEC2にALMiniumをインストールしたときのいろいろ

前回の続き。

タイトルとは裏腹に、実際にインストールしたのは素のRedmine。
RedminやらGitを入れるのなら、「ALMinium」と言う便利なパッケージがあると聞き
さっそく手抜きして入れてみることにした・・・のだが、
思いの他ハマり、インストールはできたものの起動ができない問題に直面して結局挫折した。
(Apacheは起動するが、ALMiniumがロードされない)

 

べつにALMiniumやらrubyに詳しくなるのが目的ではないので、
素直にRedmineやらGitを個別にインストールする方向で軌道修正。
なお、単独でRedmineをインストールするのはかなりスムーズにできた。
情報としては色々と出回ってるけれど、個人的な備忘録として記しておく。

 

一応、今回の前提としてAWSの無料枠で行いたいと言うものがある。
Redmineの推奨環境(と言うよりはpassengerの推奨環境か?)としては「t2.small」以上とあるが、
それでは無料枠ではなくなってしまうので、あくまで「t2.micro」でがんばる。

 

参考にしたのは以下のサイト。
Amazon EC2上にRedmineをインストールしてみた

 

その他のもろもろは以下の通り

name Version Install
Apache 2.2.29 yum
MySQL 5.5.42 yum
Ruby 2.0.0p645 Pre Installed
Redmine 3.0.3 download
Passenger 5.0.11 gem

 

EC2のセットアップ

t2.microでインスタンスを作成する。(この時点でElasticIPを割り当てておくと楽。)

起動したらsshを起動し、ec2-userでログイン。
とりあえず、アップデート
[code lang=”bash” gutter=”off”]
$ sudo yum -y update
[/code]

 

Apacheのインストール

[code lang=”bash” gutter=”off”]
$ sudo yum -y install httpd
[/code]

 

MySQLのインストール

[code lang=”bash” gutter=”off”]
$ sudo yum -y install mysql-server mysql-devel
[/code]

/etc/my.cnfを編集し、文字コードを設定する。
以下の内容を追記。
[code lang=”xml”]
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
[/code]
MySQLを起動し、自動起動設定。
[code lang=”bash” gutter=”off”]
$ sudo service mysqld start
$ sudo chkconfig mysqld on
[/code]

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

[code lang=”sql” gutter=”off”]
$ mysql -uroot
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to db_username@localhost identified by ‘db_password’;
mysql> quit
[/code]

 

Rubyのインストール

Amazon LinuxにはデフォルトでRuby2.0がインストールされているので、そのまま利用。

 

Redmineのインストール

事前に必要なモノをインストール
[code lang=”bash” gutter=”off”]
$ sudo yum -y groupinstall "Development Tools"
$ sudo yum -y –enablerepo=epel install ruby-devel ImageMagick ImageMagick-devel ipa-gothic-fonts
[/code]

 

bundlerのインストール
[code lang=”bash” gutter=”off”]
$ gem install bundler –no-rdoc –no-ri
[/code]

 

Redmineをダウンロードして/var/lib/redmineに展開。
※ バージョンはhttp://www.redmine.org/releases/にアクセスして、一番新しいものを。今回は3.0.3。

[code lang=”bash” gutter=”off”]
$ mkdir tmp
$ cd tmp
$ curl -O http://www.redmine.org/releases/redmine-3.0.3.tar.gz
$ tar xvf redmine-3.0.3.tar.gz
$ sudo mv redmine-3.0.3 /var/lib/redmine
[/code]

 

/var/lib/redmineに移動し、Redmineのインストールを実行。
[code lang=”bash” gutter=”off”]
$ cd /var/lib/redmine
$ bundle install –without development test
・・・
/usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require’: cannot load such file — io/console (LoadError)
・・・
[/code]

ここでエラーが発生・・・
io-consoleが無いとの事なので、io-consoleをインストール。
[code lang=”bash” gutter=”off”]
$ gem install io-console
[/code]

Redmineのインストールをリトライ
[code lang=”bash” gutter=”off”]
$ bundle install –without development test
[/code]

成功。

 

データベースを設定するため、/var/lib/redmine/config/database.ymlを編集。
※なければ、database.yml.exampleをコピーして編集。

[code lang=”xml” line=”1″]
production:
adapter: mysql2
database: db_redmine
host: localhost
username: db_username
password: db_password
encoding: utf8
[/code]

その他、余計な記述はコメントアウト。

 

SMTPを設定するため、/var/lib/redmine/config/configuration.ymlを編集。
※無ければ、/var/lib/redmine/config/configuration.yml.exampleをコピーして作成。

[code lang=”xml” line=”1″]
production:

email_delivery:
delivery_method: :smtp
smtp_settings:
address: SMTPサーバ
port: 25
authentication: login
domain: メールドメイン
user_name: メールサーバアカウント
password: メールサーバパスワード

rmagick_font_path: /usr/share/fonts/ipa-gothic/ipag.ttf
[/code]
※ちなみにこの設定ファイル、コロン「:」が2つ続いたり、
addressがSMTPサーバのことだったり、いろいろとトラップが多い。
※細かい説明については、以下のサイトを参照。
Redmine.jp – メール通知のためのconfiguration.ymlの設定

 

セッションのシークレットトークンの作成。
正直、これが何をやってるのかよくわからん。
[code lang=”bash” gutter=”off”]
$ bundle exec rake generate_secret_token
・・・
Could not find gem ‘mysql2 (~> 0.3.11) ruby’ in any of the gem sources listed in your Gemfile or available on this machine.
・・・
[/code]
ここでもエラー発生。言われるがままにmysql2をインストールする

[code lang=”bash” gutter=”off”]
$ gem install mysql2
[/code]

リトライ
[code lang=”bash” gutter=”off”]
$ bundle exec rake generate_secret_token
[/code]

成功。

 

データベース初期化
[code lang=”bash” gutter=”off”]
$ bundle exec rake db:migrate RAILS_ENV=production
[/code]

 

Passengerのインストール

[code lang=”bash” gutter=”off”]
$ sudo yum -y install curl-devel httpd-devel apr-devel apr-util-devel
$ gem install passenger –no-rdoc –no-ri
[/code]

続けて、apache2モジュールを起動。
[code lang=”bash” gutter=”off”]
$ passenger-install-apache2-module

・・・
Your system does not have a lot of virtual memory

Compiling Phusion Passenger works best when you have at least 1024 MB of virtual
memory. However your system only has 996 MB of total virtual memory (996 MB
RAM, 0 MB swap). It is recommended that you temporarily add more swap space
before proceeding. You can do it as follows:

sudo dd if=/dev/zero of=/swap bs=1M count=1024
sudo mkswap /swap
sudo swapon /swap

See also https://wiki.archlinux.org/index.php/Swap for more information about
the swap file on Linux.

If you cannot activate a swap file (e.g. because you’re on OpenVZ, or if you
don’t have root privileges) then you should install Phusion Passenger through
DEB/RPM packages. For more information, please refer to the manual, section
"Installation":

/home/ec2-user/.gem/ruby/2.0/gems/passenger-5.0.11/doc/Users guide Apache.html
https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html
・・・
[/code]

だめっぽい。事前チェックでメモリが足りないとの事。
ちなみに、無理やり続けても・・・

[code lang=”bash” gutter=”off”]
It looks like something went wrong
[/code]

なんか、swap領域確保しろと言われているようなので、指示に従う。
[code lang=”bash” gutter=”off”]
$ sudo dd if=/dev/zero of=/swap bs=1M count=1024
$ sudo mkswap /swap
$ sudo swapon /swap
[/code]

リトライ

[code lang=”bash” gutter=”off”]
$ passenger-install-apache2-module
[/code]

成功。
途中でApacheの設定書き換えろと言ってくるけど、
Terminalをもうひとつ立ち上げるのが面倒なので後回し。
設定内容はコピっておく。

で、passenger設定。
さきほどコピっておいた内容を/etc/httpd/conf.d/passenger.confにペースト。
バージョンやパスなど毎回微妙に変わるので、きちんと言われた内容をコピーすること。

[code lang=”xml” line=”1″]
LoadModule passenger_module /home/ec2-user/.gem/ruby/2.0/gems/passenger-5.0.11/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/ec2-user/.gem/ruby/2.0/gems/passenger-5.0.11
PassengerDefaultRuby /usr/bin/ruby2.0
</IfModule>
[/code]

 

DocumentRoot設定。
いずれ、ディレクトリで公開したいけど、いったんRedmineをDocumentRootで設定。
/etc/httpd/conf/httpd.confを編集する。

[code lang=”xml” line=”1″]
DocumentRoot "/var/lib/redmine/public"
[/code]

 

Apacheを起動し、自動起動設定。
[code lang=”bash” gutter=”off”]
$ sudo service httpd start
$ sudo chkconfig httpd on
[/code]

 

ブラウザでアクセス。問題なければRedmineの画面が表示されるはず。
表示されなければ、Apacheのログ(/etc/httpd/logs/error_logとか)を確認。
※私の場合、SMTPの設定がまずかったらしくうまく起動しなかった。

 

初期設定

デフォルトのID(admin/admin)でログインし、初期設定を行う。
参考:Redmine.jp – Redmineを使い始めるための初期設定

とりあえず、「adminユーザのパスワードの変更」と
「日本語での利用に適した設定」だけは最初にやっておく。

 

メール設定確認

「管理」>「設定」画面で「メール通知」タブを開き、
画面左下の「テストメールを送信」というリンクをクリック。
リンクをクリックしたユーザー宛にテストメールの送信される。

 

今回はいったんここまで。
Gitやらプラグインやらディレクトリの設定やらはまた次回以降で。

コメント

  1. […] 前回の続き。 […]

タイトルとURLをコピーしました