【Ubuntu 22】Redmineをインストールする

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Ubuntu 22】Redmineをインストールする

2024-5-17 | ,

Ubuntu 22にRedmineをインストールしてプロジェクトをチケット管理したい!

概要

この記事では、Ubuntu 22にRedmineをインストールする手順を掲載する。

データベースはMariaDB(MySQL)を使う。RedmineのURLは例としてredmine.example.comとする。

仕様書

環境

  • Ubuntu 22.04.2 LTS
  • Ruby 3.3.1
  • Redmine 5.0.8.stable.22832
  • MariaDB 15.1

手順書

Ruby編とMariaDB(MySQL)編とRedmineインストール編とRedmine初期設定編の4部構成で説明する。

Ruby編

rbenvを使ってRubyをインストールする場合は下記の記事を参照して、次のMariaDB(MySQL)編に飛んで下さい。

  1. 必要なパッケージをインストールする。
    sudo apt install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev apache2 apache2-dev libapr1-dev libaprutil1-dev imagemagick fonts-takao-pgothic subversion git
  2. Rubyをダウンロード&ビルド&インストールする。(rbenvを使ってRubyをインストールしても良い)
    curl -O https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.1.tar.gz
    tar xvf ruby-3.3.1.tar.gz
    cd ruby-3.3.1
    ./configure --disable-install-doc
    make
    sudo make install
    cd ..

MariaDB(MySQL)編

  1. MariaDBと必要なパッケージをインストールする。
    sudo apt update
    sudo apt install mariadb-server mariadb-client libmysqlclient-dev
  2. MariaDBの設定を開始する。MariaDB(MySQL)編の以下はこちらの記事と同じ内容になってる。
    sudo mysql_secure_installation
  3. Enter current password for root (enter for none):と問われるのでEnterを押す。
  4. Set root password? [Y/n]と問われるのでnを入力しEnterを押す。
  5. Remove anonymous users? [Y/n]と問われるのでyを入力しEnterを押す。
  6. Disallow root login remotely? [Y/n]と問われるのでyを入力しEnterを押す。
  7. Remove test database and access to it? [Y/n]と問われるのでyを入力しEnterを押す。
  8. Reload privilege tables now? [Y/n]と問われるのでyを入力しEnterを押す。
  9. 下記のコマンドを実行して「MariaDB」の対話モードを開始する。
    sudo mariadb
  10. rootでデータベースを操作するのはセキュリティ的に良くないので、rootに変わるRedmineで使うアカウントを作成する。
    GRANT ALL ON *.* TO '<username>'@'localhost' IDENTIFIED BY '<password>' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
  11. Redmineで使うデータベースを作成する。
    CREATE DATABASE <db_name>;
  12. MariaDBから抜ける。
    EXIT;
  13. 「MariaDB」が起動してるか確認する。
    sudo systemctl status mariadb

Redmineインストール編

  1. redmineをダウンロードして/var/lib/redmineに展開する。
    sudo mkdir /var/lib/redmine
    sudo chown www-data /var/lib/redmine
    sudo -u www-data svn co https://svn.redmine.org/redmine/branches/5.0-stable /var/lib/redmine
  2. Redmineの/var/lib/redmine/config/database.ymlにデータベースに関する設定を入力する。
    production:
    adapter: mysql2
    database: <db_name>
    host: localhost
    username: <user_name>
    password: "<password>"
    # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
    encoding: utf8mb4
  3. 今回、バージョンの高いRubyをインストールしてしまったので/var/lib/redmine/Gemfileを直接編集して無理やり対応する。(本当はrbenvとか使って指定されてるバージョンのRubyを使う方が良いと思う)
    ruby '>= 2.5.0', '<= 3.3.1'
  4. Redmineのディレクトリに移動する。
    cd /var/lib/redmine
  5. Redmineを構築する。
    sudo gem update
    sudo bundle install --without development test
    sudo -u www-data bin/rake generate_secret_token
    sudo -u www-data RAILS_ENV=production bin/rake db:migrate
    sudo gem install passenger -N
  6. Apache用のPassengerをビルドする。(それなりに時間がかかる)
    sudo passenger-install-apache2-module --auto --languages ruby
  7. Apacheの設定で使うスニペットを表示する。
    passenger-install-apache2-module --snippet

    出力結果は環境によって変わるんだけども、この記事の環境では下記のような感じになる。

    LoadModule passenger_module /usr/local/lib/ruby/gems/3.3.0/gems/passenger-6.0.22/buildout/apache2/mod_passenger.so
    <IfModule mod_passenger.c>
    PassengerRoot /usr/local/lib/ruby/gems/3.3.0/gems/passenger-6.0.22
    PassengerDefaultRuby /usr/local/bin/ruby
    </IfModule>
  8. /etc/apache2/conf-available/redmine.confを作成して、Redmine用の設定を入力する。
    <Directory "/var/lib/redmine/public">
    Require all granted
    </Directory>
    # この部分が`passenger-install-apache2-module --snippet`で出力した部分
    LoadModule passenger_module /usr/local/lib/ruby/gems/3.3.0/gems/passenger-6.0.22/buildout/apache2/mod_passenger.so
    <IfModule mod_passenger.c>
    PassengerRoot /usr/local/lib/ruby/gems/3.3.0/gems/passenger-6.0.22
    PassengerDefaultRuby /usr/local/bin/ruby
    </IfModule>
    # Redmine関連のオプション
    PassengerMaxPoolSize 20
    PassengerMaxInstancesPerApp 4
    PassengerPoolIdleTime 864000
    PassengerStatThrottleRate 10
    <Directory /var/lib/redmine/public>
    Allow from all
    Options -MultiViews
    Require all granted
    </Directory>
    # サブディレクトリ`redmine.example.com/redmine`でRedmineにアクセスできるようにする設定
    Alias /redmine /var/lib/redmine/public
    <Location /redmine>
    PassengerBaseURI /redmine
    PassengerAppRoot /var/lib/redmine
    </Location>
  9. 私の環境ではApacheにもともと入ってるmod_passenger.soと先ほどビルドしたmod_passenger.soが衝突してしまったので、もともとの方を読み込まないようにした。
    sudo a2dismod passenger
  10. 先程作ったRedmine用の設定ファイルを読み込んでApacheを再起動する。
    sudo a2enconf redmine
    apache2ctl configtest
    sudo systemctl restart apache2

Redmine初期設定編

  1. RedmineのURL(例としてredmine.example.com/redmine)にブラウザでアクセスする。
  2. 右上のログインをクリックする。
  3. 「ログインID」と「パスワード」の初期値はどちらもadminとなってる。入力して「ログイン」をクリックする。
  4. パスワードの変更を求められるので、古いパスワード(admin)と変更後の新しいパスワードを入力する。
  5. 初期設定だとアクセスしたユーザーがアカウントを作成できたりしちゃうので最低限として後述の設定をする。
  6. 左上の「管理」をクリックする。
  7. 「管理」の中にある「設定」をクリックする。
  8. 「設定」の中にある「認証」タブをクリックする。
  9. 「認証が必要」を「はい」、「ユーザーによるアカウント登録」を「無効」にして「保存」をクリックする。

まとめ(感想文)

アプリケーションの開発の進捗管理とかにRedmineが使えるかもね!

引用・参考文献

下記の日本の公式サイトを参考にさせていただきました。ありがとうございました。