寒い日が続いていますが皆さんお元気でしょうか。
最近、サークルでプロジェクト活動をしていて、使ってみるかということでRedmineを導入しました。
が
今回、RedmineはPostgreSQL+Pumaで導入しました。
なかなか文献がなく、結構大変でした。
Redmineのインストール!
前提条件
- apacheが動作していること
- PostgeSQLが動作していること
環境
- CentOS 6.4
- PostgreSQL 8.4.18(server 9.1.11)
- Apache 2.2.15
- Ruby 2.0.0p247
- Gem 2.0.23
- Rails 3.2.16
- Redmine 2.4.2 stable
インストール
データベースの初期化
データベースユーザにスイッチして、データベースの初期化を行います。
データベースをredmineがいじれるように、ロールの追加も行います。
# su - postgres $ psql psql(8.4.18, server9.1.11) postgres=# CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'password' NOINHERIT VAILD UNTIL 'infinity'; postgres=# create database redmine with encording='utf8' template=template0 owner=redmine; postgres=# \q $ exit
これで、データベースの準備が完了です。
redmineの導入
redmineを公式からダウンロードしてきましょう。
redmineを動かすページで行います
# pwd /home/web/ # wget http://www.redmine.org/releases/redmine-2.4.2.tar.gz # tar xvf redmine-2.4.2.tar.gz # mv redmine-2.4.2 redmine # cd redmine
redmineはRoRで動くので、bundle installしてあげましょう
# bundle install
するとエラーが発生します。
どうやら、rmagickが上手く入らない模様。
gem install rmagick
してみると、
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... no Can't install RMagick 2.13.2. Can't find Magick-config in /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/local/bin/ruby
どうやらImageMagickとやらを入れないとダメみたい。
# yum install ImageMagick-devel # bundle install Your bundle is complete! Gems in the groups development and test were not installed. Use `bundle show [gemname]` to see where a bundled gem is installed.
できたー
データベースの設定
redmineの設定ファイルに、接続に使う情報を書きます。
# vi config/database.yml production: adapter: postgresql database: redmine host: localhost username: redmine password: password encoding: utf8
ここで、redmineのディレクトリに移動し、
# bundle exec rake generate_secret_token
すると、上手く行きません。
あれー…
# su - psql $ cd 9.1/data/ $vi pg_gba.conf
そして、local all postgres peer
を削除して
# rake db:create # rake db:migrate # rake db:seed # rails s
で、http://localhost:3000/にアクセスすると…?
できてるー!
redmineのデーモン起動
上手く動いてるし、デーモンで起動するように設定しましょう。
噂で聞くと、unicornがいいらしい。
unicornの導入
# vi Gemfile + gem "unicorn" # bundle install # bundle exec unicorn -v unicorn v4.8.0
わーいはいったー。
入ったので、設定ファイルを書いてあげます。
config内の、unicorn.rb
に記述します。
@dir = "/home/web/redmine/" # ディレクトリのパス worker_processes 4 working_directory @dir timeout 15 # タイムアウトの指定 listen 30000 # portの指定 preload_app true pid"#{@dir}tmp/pids/unicorn.pid" # pidの保存設定 stderr_path "#{@dir}log/unicorn.error.log" # エラー出力先 stdout_path "#{@dir}log/unicorn.log" # ログ出力先
わざわざアドレスバーにポート番号書くのもめんどくさいので、http://localhost/redmine/
と入力されたらそこに飛ばしてあげましょう。
いわゆるリバースプロキシってやつです。
# httpd.conf <VirtualHost *:80> ProxyPass /redmine http://localhost:3000/redmine ProxyPassReverse /redmine http://localhost:3000/redmine </VirtualHost>
これでbundle exec unicorn_rails -D --path /redmine -c config/unicorn.rb
してみると…
できたー
動作確認
動作確認してみると、なんかログイン状態がかなり不安定…
ログインしてページ移動するとno login状態になったり、login画面が3回連続で出てみたり…
調べても情報が出てこないし。
でも、rails s
をした時は上手く言ってることを考えると、なんかunicornあたりが怪しいことが発覚しました。
というわけで、unicornをやめて、pumaを導入してみます。
puma導入
pumaというのが、意外といいという情報を手に入れました。 早速導入します。
# Gemfile gem "puma"
bundle install
します。
そして、デーモンで起動するように設定を書きます。
config/puma.rb
にかけばいいらしい。
#puma.rb ENV['RAILS_RELATIVE_URL_ROOT'] = "/redmine" application_path = '/home/web/redmine' directory application_path environment = :production daemonize true pidfile "#{application_path}/tmp/pids/puma.pid" bind 'tcp://0.0.0.0:22284'
これで、bundle exec puma -e production --config config/puma.rb --daemon
してあげます。
で、http://localhost/redmine/
にアクセスしてあげると…?
できたー。
ログインもうまくいってますね!
というわけで完成です!
今後の課題
うちのサークル、gitlabも使ってるのですが、redmineとgitlabが別のサーバで動いてるんですよね…
なんとか連携できないかなーって。