Linuxめも

RedmineはRuby on Railsで開発されているWebベースのプロジェクト管理ソフトウェアです。
CentOS7に設置して利用できるようにしてみます。

最新のRubyをインストール

$ cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
$ ruby --version
ruby 2.0.0p598 (2014-11-13) [x86_64-linux]

Rubyのバージョンが古いのでバージョンアップします。
rbenvを使用すると複数のバージョンを共存させることができるらしいです。
別にRVM(Ruby Version Manager)もあります。

gitにてrbenvをインストールします。

$ git clone git://github.com/sstephenson/rbenv.git .rbenv
$ vi .bashrc
export RBENV_ROOT="${HOME}/.rbenv"
if [ -d "${RBENV_ROOT}" ]; then
  export PATH="${RBENV_ROOT}/libexec:${PATH}"
  eval "$(rbenv init -)"
fi
$ source ~/.bashrc

Rubyをインストールするためにrbenvのプラグインruby-buildをインストールします。

$ mkdir .rbenv/plugins
$ cd .rbenv/plugins/
$ git clone git://github.com/sstephenson/ruby-build.git

インストール可能なRubyのバージョンを確認

$ rbenv install -l

最新のRubyをインストール

$ rbenv install 2.5.1
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
error: failed to download ruby-2.5.1.tar.bz2

BUILD FAILED (CentOS Linux 7 using ruby-build 20180424)

ダウンロードに失敗します。
curlが問題のようなのでバージョンアップします。

$ curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.28.4 zlib/1.2.7 libidn/1.28 libssh2/1.4.3
$ sudo rpm -ivh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-2-1.rhel7.noarch.rpm
$ sudo yum update --enablerepo=city-fan.org libcurl
$ curl --version
curl 7.59.0 (x86_64-redhat-linux-gnu) libcurl/7.59.0 NSS/3.28.4 zlib/1.2.7 libpsl/0.7.0 (+libicu/50.1.2) libssh2/1.8.0 nghttp2/1.31.1

再度インストール

$ rbenv install 2.5.1
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
error: failed to download ruby-2.5.1.tar.bz2

BUILD FAILED (CentOS Linux 7 using ruby-build 20180424)

変化無し…。
オプションを指定するとイケるみたいよ。

$ RUBY_BUILD_CURL_OPTS=--tlsv1.2 rbenv install 2.5.1

インストールしたRubyのバージョンを確認

$ rbenv versions

おまじない

$ rbenv rehash

使用バージョンを切り替え

$ rbenv global 2.5.1
$ ruby --version
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

ImageMagickのインストール

入っていなければインストールします。

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

develを入れておかないとrmagickのインストールでコケます。

Redmineのインストール

ダウンロードページから最新の安定版をダウンロードし解凍するか、svnにてチェックアウトするか大きく分けて2通りあります。
今後のアップグレードを考慮するとsvnでのチェックアウトがおすすめです。

$ wget http://www.redmine.org/releases/redmine-3.4.5.tar.gz
$ tar xvzf redmine-3.4.5.tar.gz
$ svn checkout https://svn.redmine.org/redmine/branches/3.4-stable ./

データベースはMariaDBを使用します。
文字コードは utf8mb4 で作成しておきます。

config/database.yml.example をコピーして database.yml を作成します。

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "password"
  encoding: utf8mb4

config/configuration.yml.example をコピーして configuration.yml を作成します。

    email_delivery:
      delivery_method: :sendmail

RubyGemの依存関係を管理するためにBundlerをインストールします。

$ gem install bundler

解凍した中にGemfileがあるので、その同階層にて以下を実行し、必要なgemをインストールします。

$ bundle install --without development test

nokogiriが入らない…

Installing nokogiri 1.8.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

libxml2とlibxsltは入っているけど、develが無かったので入れてみる。

$ sudo yum install libxml2-devel libxslt-devel

再度実行して大丈夫でした。
他にもやったのでその影響もあるかも。

秘密鍵の生成

$ bundle exec rake generate_secret_token

config/initializers/secret_token.rb が生成されます。

テーブルを作成しますが、utf8mb4を使用しているので、MySQL 767byte問題に遭遇する可能性があります。

$ RAILS_ENV=production bundle exec rake db:migrate

日本語のデフォルトデータを登録します。

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

以下フォルダの書き込み権限を確認します。

ApacheでRedmineを使用できるようにするPassengerをインストールします。

$ gem install passenger --no-rdoc --no-ri

httpd-develが入っていなければ入れておきます。

$ sudo yum install httpd-devel

libcurl-develも入れておきましょう。

$ sudo yum install --enablerepo=city-fan.org libcurl-devel

Apache用のモジュールをインストールします。

# passenger-install-apache2-module --auto --languages ruby
WARNING: 'aclocal-1.15' is missing on your system.

怒られた…。
調べるとautoreconf云々とあったので、以下インストールしてみた。

$ sudo yum install autoconf automake libtool m4 perl

仕切り直し

$ gem uninstall passenger
$ gem install passenger --no-rdoc --no-ri
# passenger-install-apache2-module --auto --languages ruby
WARNING: 'aclocal-1.15' is missing on your system.

変化なし。
aclocal-1.15のハードリンクを作成してみる。

$ which aclocal
/usr/bin/aclocal
# ln /usr/bin/aclocal /usr/bin/aclocal-1.15
# ln /usr/bin/automake /usr/bin/automake-1.15
# passenger-install-apache2-module --auto --languages ruby

これでイケました。
後半に表示されるコードをApacheの設定に追加します。
不明な場合は以下で得られます。

$ passenger-install-apache2-module --snippet
# vi /etc/httpd/conf.d/redmine.conf
<VirtualHost *:80>
    DocumentRoot /home/redmine/public
    ServerName redmine.example.com
    RailsEnv production
    <Directory /home/redmine/public>
        Require all granted
    </Directory>
</VirtualHost>

# passenger-install-apache2-module --snippet で得られるコード

LoadModule passenger_module /home/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
    PassengerRoot /home/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/passenger-5.2.3
    PassengerDefaultRuby /home/user/.rbenv/versions/2.5.1/bin/ruby
</IfModule>

Apacheを再起動し、ブラウザにて初期設定を進めます。

Redmineの初期設定

Redmineを使い始めるための初期設定
http://redmine.jp/tech_note/first-step/admin/

インストール直後はログインID、パスワードともに admin で設定されています。

管理 - 設定 にて各項目を設定します。

タブ項目
全般ホスト名とパスredmine.example.com
表示デフォルトの言語Japanese(日本語)
表示ユーザー名の表示形式Admin Redmine
認証認証が必要チェックあり
プロジェクトデフォルトで新しいプロジェクトは公開にするチェックなし

Redmineのアップグレード

Redmineをダウンロードした方法によって操作が異なります。
http://guide.redmine.jp/RedmineUpgrade/

svnにてチェックアウトした方が遥かに楽そうです。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS