Posted at

CentOS7.5にRedmine3.4.0をインストール

More than 1 year has passed since last update.


CentOS7.5にRedmineをインストール

公式の手順だとRubyのインストールで蹴られたので調べて一部変更して実施。

VirtualBoxにCentOS7.5を入れyumとssh可能になった状態からスタート。


CentOSの設定


1. SELinuxの無効化

/etc/sysconfig/selinuxを開きSELINUX=disableに変更

再起動後に設定が反映されてるか確認しDesabled

なっていればOK

$ getenforce


2. firewalldでHTTPを許可する

default-zoneにhttpを追加。リロードして反映を確認

$ firewall-cmd --zone=public --add-service=http --permanent

$ firewall-cmd --reload
$ firewall-cmd --zone=public --list-services


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


1. 開発ツール

$ yum -y groupinstall "Development Tools"


2. Ruby/Passengerに必要なもの

$ yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel


3. PostgreSQLとヘッダファイル

$ yum -y install postgresql-server postgresql-devel


4. Apacheとヘッダファイル

$ yum -y install httpd httpd-devel


5. ImageMagickと日本語フォント

$ yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts


Rubyのインストール


1. rbenvのインストール

$ cd /usr/local

$ sudo git clone https://github.com/rbenv/rbenv.git rbenv
$ sudo mkdir /usr/local/rbenv/shims
$ sudo mkdir /usr/local/rbenv/versions


2. rbenvのパスを通す

$ echo 'export RBENV_ROOT=/usr/local/rbenv' | sudo tee -a  /etc/profile.d/rbenv.sh

$ echo 'export PATH="$RBENV_ROOT/bin:$PATH"' | sudo tee -a /etc/profile.d/rbenv.sh
$ echo 'eval "$(rbenv init -)"' | sudo tee -a /etc/profile.d/rbenv.sh
$ source /etc/profile.d/rbenv.sh

$ sudo visudoコマンドでファイルが開くので、

既にあるものをコメントアウトし、以下のようにDefaultsを二行追加

#------------------- ファイルの中身一部抜粋 --------------------------------

#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults env_keep += "HOME"

#Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rbenv/bin:/usr/local/rbenv/shims
Defaults env_keep += "RBENV_ROOT"
#---------------------------------------------------------------------------


3. rbenvにruby-installプラグインを追加

$ git clone https://github.com/rbenv/ruby-build.git  rbenv/plugins/ruby-build

$ sudo rbenv/plugins/ruby-build/install.sh


4. インストール可能なRuby一覧を確認

$ rbenv install -l | grep 2.4


5. rbenvを使ってRubyをインストール

$ sudo rbenv install 2.4.4

$ sudo rbenv rehash
$ sudo rbenv global 2.4.4
$ ruby -v

きちんとrubyのver.が表示されればOK


6. bundlerをインストール

gemの管理を行うもの

$  gem install bundler


PostgreSQLの設定


1. 初期設定

$ postgresql-setup initdb

Initializing database ... OK

/var/lib/pgsql/data/pg_hba.confを以下のように編集

# Put your actual configuration here

# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.

# TYPE DATABASE USER ADDRESS METHOD
########## ↓ この部分を追記 #############################################
host redmine redmine 127.0.0.1/32 md5
host redmine redmine ::1/128 md5
##########################################################################


2. PostgreSQLの起動および自動起動

$ systemctl start postgresql.service

$ systemctl enable postgresql.service


3. Redmine用ユーザを追加しDB作成

$ cd /var/lib/pgsql

$ sudo -u postgres createuser -P redmine
新しいロールのためのパスワード:
もう一度入力してください:
$ sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine

パスワードはあとの設定で使うので忘れないように


Redmineのインストール


1. /var/lib/redmineにsvnで持ってくる

$ svn co https://svn.redmine.org/redmine/branches/3.4-stable /var/lib/redmine


2. DB設定ファイルdatabase.ymlの作成

デフォルトファイルをコピーして設定ファイルを

$ cd /var/lib/redmine/config

$ cp database.yml.example database.yml

コピーしたdatabase.ymlファイルを以下のように変更

# Default setup is given for MySQL with ruby1.9.

# Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.
# Line indentation must be 2 spaces (no tabs).

##### ↓ここからコメントアウト ###################################
#production:
# adapter: mysql2
# database: redmine
# host: localhost
# username: root
# password: ""
# encoding: utf8

#development:
# adapter: mysql2
# database: redmine_development
# host: localhost
# username: root
# password: ""
# encoding: utf8

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
#test:
# adapter: mysql2
# database: redmine_test
# host: localhost
# username: root
# password: ""
# encoding: utf8
##### ↑ここまで #################################################

#### PosgreSQL用の例を元に設定値を記載
# PostgreSQL configuration example
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "設定したパスワード"

# SQLite3 configuration example
#production:
# adapter: sqlite3
# database: db/redmine.sqlite3

# SQL Server configuration example
#production:
# adapter: sqlserver
# database: redmine
# host: localhost
# username: jenkins
# password: jenkins


3. 設定ファイルcomfiguration.ymlの作成

$ cp configuration.yml.example configuration.yml

メール通知用のサーバやファイルのアップロード先をこのファイル内で

設定するが、今回は使用しないつもりだったのでデフォルのままで。


4. gemパッケージのインストール

$ cd /var/lib/redmine/

$ bundle install --without development test --path vendor/bundle


Redmineの初期設定/データ登録


1. セッション改ざん防止用の秘密鍵作成

$ bundle exec rake generate_secret_token


2. DBテーブルを作成しデフォルトデータを登録する

$ RAILS_ENV=production bundle exec rake db:migrate

$ RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

ここでエラーになったら多分database.ymlconfigration.ymlが間違っている。

半角スペース忘れてSyntaxErrorが出てたり。


Passengerをインストール

Apache上でRedmineなどのRailsアプリを動かすために使われる。


1. Phusion Passengerをインストール

$ gem install passenger


2. Apache用モジュールを追加し設定確認

$ passenger-install-apache2-module --auto --languages ruby

$ passenger-install-apache2-module --snippet

--snippetで表示された内容は設定で使用するのでコピペして保存しておく。


3. ApasheにRedmine用設定ファイルを追加

/etc/httpd/conf.d/redmine.confを追加し内容を編集。


/etc/httpd/conf.d/redmine.conf

<Directory "/var/lib/redmine/public">

Require all granted
</Directory>

LoadModule passenger_module /usr/local/rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/passenger-5.3.1/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/passenger-5.3.1
PassengerDefaultRuby /usr/local/rbenv/versions/2.4.4/bin/ruby
</IfModule>


LoadModule の部分は環境により異なるため、前のコマンドで表示された結果をコピペで適用すること。


4. 自動起動を設定して起動する。

$ systemctl start httpd.service

$ systemctl enable httpd.service


5. PassengerでRedmineが実行できるようPermission変更

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

設定がきちんとできていればhttp://localhost/でRedmineが見えるはず。


Redmineのアドレスを変更する。

http://<IPアドレス>/redmineでアクセス出来るようにする。


1. Redmineをサブディレクトリ運用にする。

/etc/httpd/conf.d/redmine.confに以下を追記する


/etc/httpd/conf.d/redmine.conf

Alias /redmine /var/lib/redmine/public

<Location /redmine>
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
</Location>

service httpd configtestでconfigが正しいかチェック。


2. ApacheのListenアドレス/ポートを変更

Apacheの設定ファイルは/etc/httpd/conf/httpd.confとなる。

# Listen: Allows you to bind Apache to specific IP addresses and/or

# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
#Listen 80
Listen <IPアドレス>:<ポート> ### 設定値に変更

#
# Dynamic Shared Object (DSO) Support


3. Apacheを再起動して動作確認

$ systemctl restart httpd

$ systemctl status httpd

これで設定したhttp://<IPアドレス>:<ポート>でRedmineが見れるはず。



参考資料

  • Rubyのインストール
  • PostgreSQLの設定
  • Redmineのインストール
  • Redmineの初期設定/データ登録
  • Passengerをインストール
  • Redmineのアドレスを変更する。