【CnetOS】Redmine3系をインストールする

【CnetOS】Redmine3系をインストールする

人が増え、案件が増えてくると管理することが多くなります。同時期に複数の案件が動く、どれをいつまでに誰が対応するのか、現在の進捗はどのくらいなのか、予想工数に対して実績はどうなのかなどなどひと目でわかるようにしたいですよね。

プロジェクト管理ツールはいろいろありますが、有料サービスを採用するのは簡単ですが、月々利用料を払うのはまだきつい、自分たちのデータは自分たちで管理したいといったことがあるかと思います。そこで登場するのはオープンソースのRedmine。有名なプロジェクト管理ツールですね。

今回、自社のCentOSサーバーにRedmineをインストールした時手順を記したいと思います。
対応するのに他のサイトを参考(というかほぼそのまま)にしたのですが、注意事項があります。これを守ればまず間違いなくインストール出来ます。

システム構成

CentOS6.9
※Web、Gitサーバーにするため、httpd、php、MySQLはインストール済み

Redmineインストール手順

Redmineをインストールする前に、ベースとなる環境を作ります。

1.必要なモジュールをインストール


yum install -y gcc
yum install -y gcc-c++
yum install -y httpd 
yum install -y httpd-devel
yum install -y mysql-server 
yum install -y mysql-devel
yum install -y openssl-devel
yum install -y readline-devel
yum install -y zlib-devel
yum install -y curl-devel

2. yum リポジトリの追加


yum install epel-release
yum install --enablerepo=epel libyaml libyaml-devel nodejs npm 

3.Ruby インストール

 
cd /usr/local/src/
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.7.tar.gz 
tar zxvf ruby-2.3.7.tar.gz 
cd ruby-2.3.7
./configure --disable-install-doc
make
make install

※ここで注意が必要です。この記事いつの記事なの?今ならもっとrubyの新しいバージョン出てるよね?2.6とかあるんだから、Ruby2.6系入れるよ!と思ったあなた。後でハマりますよ。
先に説明すると、Redmine3.3系はRuby2.4系をサポートしておらず、後々migrateするところでエラーになります。もしRedmine3.4系を入れたいよ!といった方は、Rubyの対応バージョンを確認してからインストールしてください!

インストール後の確認


ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux]

 4.gem を最新版に更新

現状を確認


gem -v
2.0.14.1

gemを更新


gem update --system --no-rdoc --no-ri

再度確認


gem -v
2.7.7

gem install bundler --no-rdoc --no-ri
gem install daemon_controller rack passenger --no-rdoc --no-ri

5.MySQL 設定


[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

character-set-server=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8

6.MySQL 初期設定


※起動
service mysqld start

※自動起動設定
chkconfig mysqld on

※セキュリティ設定(rootパスワード他)
mysql_secure_installation

※DB、ユーザー作成
mysql -u root -p
mysql> create database redmine_db default character set utf8;
mysql> grant all on redmine.* to admin@localhost identified by 'ここにパスワードを指定!';
mysql> flush privileges;
mysql> exit

※もしphpMyAdminなどデータベースを操作するツールがあればそちらからデータベースを作成しても構いません。

7.Redmine インストール

 
cd /usr/local/src/
wget http://www.redmine.org/releases/redmine-3.3.7.tar.gz
tar zxvf redmine-3.3.7.tar.gz
mv redmine-3.3.7 /var/lib/
chown -R apache:apache /var/lib/redmine-3.3.7
cd /var/lib
ln -s redmine-3.3.7 redmine
cd /var/lib/redmine/config
cp -p database.yml.example database.yml
vi database.yml

※参考先のサイトではインストール先は「usr/local」だったのですが、「/var/lib/redmine」にしました。

8.database.ymlの設定変更


production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: admin
  password: "上で指定したパスワード"
  encoding: utf8

※6.MySQL 初期設定で指定した、データベース名、ユーザー名、パスワードを指定してください。


cd /var/lib/redmine/
bundle install --without development test rmagick --path vendor/bundle

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

ここです。もしRubyのバージョンが2.3系でなければ、このmigrateの処理でエラーになります。

9.passenger 設定


passenger-install-apache2-module

ls /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.1/buildout/apache2/mod_passenger.so
※mod_passenger.soの存在確認です。

vi /etc/httpd/conf.d/passenger.conf

11./etc/httpd/conf.d/passenger.confの編集


LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.1/buildout/apache2/mod_passenger.so
   
   
   <IfModule mod_passenger.c>
     PassengerRoot  /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.1
     PassengerDefaultRuby /usr/local/bin/ruby
   </IfModule>
   
   
# 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"

PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0

# DocumentRootのサブディレクトリで実行する設定
RackBaseURI /redmine

※ <IfModule mod_passenger.c>の部分は、上記の「passenger-install-apache2-module」コマンドを実行した時にターミナル上に表示されます。

 
ln -s /var/lib/redmine/public /var/www/html/redmine
chown -R apache:apache /var/www/html/redmine

12.httpd再起動

service httpd start 

これでhttp://サーバー名/redmineにアクセスできると思います。

 

今回参考にさせていただいたサイトは下記になります。

CentOS6へのRedmine3インストール
【Ansible】【Redmine】db:migrate がエラーで終了してしまう問題に対処する

上述しましたが、どうせ入れるなら新しいバージョンを!と自分もやってしまいました。注意深く見るとRedmineに対応するRubyのバージョンの事は書いてあるのかもしれませんが、まさか対応していないバージョンがあるとは思いませんよね。

こちらの2つのサイトはとても参考になりました。ありがとうございました。

 

Remineは汎用性が高く、他の仕組みと連携することもできるようです。
まずはRedmineの使い方を覚え、今度はソース管理のGitと連携させたいと思います。

 

Redmineの使い方については、別途記事を書く予定です。ご期待ください!