いつも仕事でお世話になっている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
Apache、MariaDB、Let’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ファイルがプレビューできるなどなどいろいろ機能が向上しているようですね。