開発メモ

開発関係のメモをいろいろと。たぶん。

CentOS 7(32bit版)にRedmineをインストール

なぜか、CentOS 7なのに32bit版にRedmineをインストールしたときのメモです。

ChefもAnsibleもあってDockerが盛りあがってるこの時代に、なぜ、あえて手作業でRedmineをインストールしているのかは謎です。

方針

動作を確認した環境

環境 情報
VirtualBox VirtualBox-5.1.10-112026-Win.exe
CentOS CentOS-7-i386-Minimal-1511.iso
Ruby ruby-2.3.3.tar.gz
Redmine redmine-3.3.1.tar.gz
Date 2016/12/10

インストール

必要なソフトをインストール

いろいろ、まとめてインストールしておきます。

# yum -y groupinstall "Development Tools"
# yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel
# yum -y install mariadb-server mariadb-devel
# yum -y install httpd httpd-devel
# yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts

Rubyをインストール

ruby-langのサイトで最新のRubyを確認。

ダウンロード  
https://www.ruby-lang.org/ja/downloads/

今回は2.3.3をインストールします。

# curl -O https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.3.tar.gz
# tar xvf ruby-2.3.3.tar.gz
# cd ruby-2.3.3
# ./configure --disable-install-doc
# make
# make install
# cd ..

ついでにbundlerを入れておきます。

# gem install bundler --no-rdoc --no-ri

Redmineをインストール

Redmineのサイトで最新のバージョンを確認。

Download - Redmine  
http://www.redmine.org/projects/redmine/wiki/Download

こんな感じでインストールします。簡単ですね。

# curl -O http://www.redmine.org/releases/redmine-3.3.1.tar.gz
# tar xvf redmine-3.3.1.tar.gz
# mv redmine-3.3.1 /var/lib/redmine

Passengerをインストール

こんな感じでインストール。

# gem install passenger --no-rdoc --no-ri
# passenger-install-apache2-module --auto

Apacheの設定で使う情報をメモしておきます。

# passenger-install-apache2-module --snippet

こんな感じになるはず。

LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

初期設定

MariaDBの初期設定

デフォルトのキャラセットとしてutf8を使うように変更します。

# nano /etc/my.cnf

[mysqld]に character-set-server=utf8 を追加、[mysql] セクションに default-character-set=utf8 を追加します。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

character-set-server=utf8

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

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

[mysql]
default-character-set=utf8

MariaDBを起動。ついでに自動起動の設定もやっておきます。

# systemctl start mariadb
# systemctl enable mariadb

MariaDBの初期設定ツールを実行しておきます。rootのパスワードを設定。他は全て『Y』がおすすめかな?

# mysql_secure_installation

Redmineで使用するデータベースを作成

まず、設定内容をまとめたファイルを作成します。

# nano redmine_db.sql

内容はこんな感じ。

create database db_redmine default character set utf8;
grant all on db_redmine.* to user_redmine@localhost identified by '{password}';
flush privileges;

{password}の部分はデータベースに接続するときのパスワードが入ります。database.ymlで使用します。

あとは、まとめて実行するだけ。

# mysql -uroot -p < redmine_db.sql

Redmineの初期設定

database.ymlとconfiguration.ymlを作成します。database.ymlはこんな感じ。

# nano /var/lib/redmine/config/database.yml
production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: "{password}"
  encoding: utf8

{password}の部分はデータベースに接続するときのパスワードが入ります。すぐ上で使ったのと同じ物です。

configuration.ymlはこんな感じで。

# nano /var/lib/redmine/config/configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: "example.com"

  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

このままでも動きますがあまりにも手抜きな設定なので、Redmineでメールを使いたい人は真面目に設定しましょう。

データベースの初期化

bundlerを使って必要になるgemをインストールします。

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

こんな感じでデータベースを初期化。デフォルトのデータを登録しておきます。

# cd /var/lib/redmine
# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate
# RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

Apacheの設定

サブディレクトリで動かす設定にしてみます。

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

Redmineのための設定ファイルを作っておきます。

# nano /etc/httpd/conf.d/redmine.conf

『Passengerの基本設定』の部分は、Passengerのインストールでメモした内容を入れます。

# Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。
# Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。
<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>

# Passengerの基本設定。
# passenger-install-apache2-module --snippet で表示された設定を記述。
# 環境によって設定値が異なるため以下の3行はそのまま転記せず、必ず
# passenger-install-apache2-module --snippet で表示されたものを使用すること。
LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

# Passengerが追加するHTTPヘッダを削除するための設定(任意)。
Header always unset "X-Powered-By"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加(任意)。
# 詳しくはPhusion Passenger users guide(https://www.phusionpassenger.com/library/config/apache/reference/)参照。
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 864000
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
PassengerFriendlyErrorPages off

# サブディレクトリでRedmineを実行
RackBaseURI /redmine

ここまで出来たらApacheを起動。ついでに自動実行の設定もやっておきます。

# systemctl start httpd
# systemctl enable httpd

動作を確認

ここまで出来たら、実際にアクセスして動作を確認しましょう。

http://{サーバーのアドレス}/redmine

これでアクセスできれば成功。

  • ログイン: admin
  • パスワード: admin

でログインできるはず。たぶん。