Redmine を RedMica に移行する

いつも仕事でお世話になっているRedmineですが、安定志向のようで(ある意味良いことなのですが)、なかなか新機能がリリースされていなかったようです。

たまたま気付いたのですが、つい先日Remineの派生のRedMicaというのがリリースされたようです。RedMicaはRedmine完全互換で、Redmineの次期バージョンアップで入る機能を先行で使えるものらしく、ベータ版?に近い位置付けなのでしょうか。

完全互換との謳い文句なので、早速移行してみました。

環境

・CentOS 7.7.1908 (Core)

・Apache/2.4.41 (Unix) OpenSSL/1.1.1d PHP/7.3.11 Phusion_Passenger/6.0.4

・MariaDB 10.3.20-1.el7

・Ruby 2.6.5

・RedMica 1.0.0

ApacheMariaDBLet’s Encrypt(certbot)Redmineはインストール済みの前提で進めます。

 

1.tmuxをインストール

いままでrubyやpassengerなどインストールに数十分〜1時間程度ものも普通にyumでインストールしていましたが、途中でネットワークが途切れてログアウトしてしまうとやり直しになってしまうので、仮想コンソールtmuxを導入して対策しておきます。

tmux経由で実行していれば、途中でログアウトしても裏ではちゃんと処理を継続してくれます。導入も簡単です。

$ sudo -i
# yum -y install tmux

 

2. 必要なパッケージをアップデート

すでにRedmineが動いているのであればyum -y update だけで良いですが、念のためinstallを列挙します。

# yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel ruby-devel bzip2 git
# yum -y install httpd-devel
# (yum --disablerepo=base,extras,updates --enablerepo=ius -y install httpd-devel) ※iusからhttpdをインストールしている場合
# yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts
# yum -y install MariaDB-devel MariaDB-shared
# yum -y update

 

3. Ruby 2.6.5をインストール

Rubyは直接インストールするのでなく、Rbenvを介してインストールします。インストール直前にtmuxに入っておきましょう。先に入っておいても良いのですが、rbenv install –list でインストールできるRubyのバージョンを列挙する時にリストが見切れてしまったので、このようにしました。

# rm -rf ~/.rbenb
# git clone https://github.com/rbenv/rbenv.git ~/.rbenv
# git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# vim ~/.bashrc
.
.
# rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
--------------------------------------
:wq
# source ~/.bashrc
# rbenv -v
# rbenv install --list
# tmux
# rbenv install 2.6.5    # 時間がかかります
# rbenv global 2.6.5
# ruby -v

 

4.  Passenger 6.0.4 をインストール

Railsを動かすためのApacheモジュールであるPassengerをインストールします。Rubyをバージョンアップした場合再インストールが必要です。インストールにものすごく時間がかかります。t3a.nano + HDD の最弱インスタンスで30分〜1時間以上。。CPUクレジットは尽きていないので、おそらくHDDのIOアクセスクレジットの枯渇かと思っています。

apache2モジュールインストール前に、chmod o+x “/root”でその他ユーザに実行権限を付与しておくのが肝。そして、httpdのapxsのパスを指定します。httpdをyumで入れているまともな人は –apxs2-path の代わりに –autoで良いです。

# gem install passenger
# chmod o+x "/root"
# passenger-install-apache2-module --apxs2-path "/usr/local/httpd4/bin/apxs"      # めちゃくちゃ時間がかかります
1
[Enter]
●Ruby
●Python
[Enter]
y
[Enter]
.
.
.
★30分以上。気長に待ちましょう★
.
.
[Enter]
[Enter]

Rubyやpassengerのバージョンアップとなる場合はパスが変わるので最後にhttpdの設定エラーが出ますが、あとで6.にて設定し直すのでここでは気にしなくてよいです。

 

5. RedMica 1.0.0を /var/lib/redmine にインストール

-1. gitHubからRedMicaを取得

旧redmineをredmine_oldに退避してから、RedMicaをredmineフォルダに取得、展開します。

# cd /var/lib
# mv redmine redmine_old
# mkdir redmine
# git clone https://github.com/redmica/redmica.git /var/lib/redmine
-2. configファイルと添付ファイルを旧redmineからコピー
# cp redmine_old/config/database.yml  redmine/config/
# cp redmine_old/config/configuration.yml  redmine/config/
# cp -ra redmine_old/files/*  redmine/files/
-3. マニフェストファイル作成
# mkdir -p redmine/app/assets/config
# vim redmine/app/assets/config/manifest.js
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css
--------------------------------------
:wq
-4. gemインストール
# cd /var/lib/redmine/
# bundle update
# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate
# bundle install --path vendor/bundle --without development test
# sudo chown -R apache:apache /var/lib/redmine

 

6. httpd設定修正、再起動

DocumentRootはRedmineインストール先の /var/lib/redmine/public とし、passenger-install-apache2-module –snippet で得られた応答を、HTTPSのバーチャルホスト内に貼り付けます。

# passenger-install-apache2-module --snippet
LoadModule passenger_module /root/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /root/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/passenger-6.0.4
  PassengerDefaultRuby /root/.rbenv/versions/2.6.5/bin/ruby
</IfModule>
# vim /usr/local/httpd4/conf/extra/httpd-vhosts-https.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot /var/lib/redmine/public
    ServerName redmine.ji0vwl.net
    KeepAlive On

    # HTTP/2 Enable
    Protocols h2 http/1.1

    <Directory "/var/lib/redmine/public/">
        Options FollowSymlinks Includes
        AllowOverride All
        AddType text/html .html
        Require all granted
    </Directory>

    SSLCertificateFile /etc/letsencrypt/live/ji0vwl.net/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/ji0vwl.net/privkey.pem
    #Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateChainFile /etc/letsencrypt/live/ji0vwl.net/fullchain.pem
    # passenger-install-apache2-module --snippet の結果をVirtualHost内に貼る
    LoadModule passenger_module /root/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so

</VirtualHost>
    # VirtualHosa外に書かないとWarningが出る
    <IfModule mod_passenger.c>
      PassengerRoot /root/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/passenger-6.0.4
      PassengerDefaultRuby /root/.rbenv/versions/2.6.5/bin/ruby
    </IfModule>
</IfModule>
--------------------------------------
:wq

httpdの再起動。httpd4はご自身のhttpdに読み替えてください。普通はhttpdです。

# systemctl restart httpd4

RedMicaが立ち上がりました!

 

7. tmuxを抜ける

# exit

ちなみに何か処理中で途中でtmuxを抜ける場合は「ctrl + B」→「D」。もう一回入るときは、以下です。

# tmux a

見た目は、フッターのRedMica以外変わりありませんが、クリップボードにコピーした画像ファイルを直接チケットにペーストできる、PDFファイルがプレビューできるなどなどいろいろ機能が向上しているようですね。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


リンクが含まれる投稿はサイト管理者の承認後に表示されます(スパム対策)