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でログイン。
とりあえず、アップデート

$ sudo yum -y update

 

Apacheのインストール

$ sudo yum -y install httpd

 

MySQLのインストール

$ sudo yum -y install mysql-server mysql-devel

/etc/my.cnfを編集し、文字コードを設定する。
以下の内容を追記。

[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8

MySQLを起動し、自動起動設定。

$ sudo service mysqld start
$ sudo chkconfig mysqld on

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

$ 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

 

Rubyのインストール

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

 

Redmineのインストール

事前に必要なモノをインストール

$ sudo yum -y groupinstall "Development Tools"
$ sudo yum -y --enablerepo=epel install ruby-devel ImageMagick ImageMagick-devel ipa-gothic-fonts

 

bundlerのインストール

$ gem install bundler --no-rdoc --no-ri

 

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

$ 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

 

/var/lib/redmineに移動し、Redmineのインストールを実行。

$ 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)
・・・

ここでエラーが発生・・・
io-consoleが無いとの事なので、io-consoleをインストール。

$ gem install io-console

Redmineのインストールをリトライ

$ bundle install --without development test

成功。

 

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

production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: db_username
  password: db_password
  encoding: utf8

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

 

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

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

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

 

セッションのシークレットトークンの作成。
正直、これが何をやってるのかよくわからん。

$ 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.
・・・

ここでもエラー発生。言われるがままにmysql2をインストールする

$ gem install mysql2

リトライ

$ bundle exec rake generate_secret_token

成功。

 

データベース初期化

$ bundle exec rake db:migrate RAILS_ENV=production

 

Passengerのインストール

$ sudo yum -y install curl-devel httpd-devel apr-devel apr-util-devel
$ gem install passenger --no-rdoc --no-ri

続けて、apache2モジュールを起動。

$ 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
・・・

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

It looks like something went wrong

なんか、swap領域確保しろと言われているようなので、指示に従う。

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

リトライ

$ passenger-install-apache2-module

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

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

 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>

 

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

DocumentRoot "/var/lib/redmine/public"

 

Apacheを起動し、自動起動設定。

$ sudo service httpd start
$ sudo chkconfig httpd on

 

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

 

初期設定

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

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

 

メール設定確認

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

 

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


この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

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

トラックバック URL