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)編に飛んで下さい。
- 必要なパッケージをインストールする。
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
- 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)編
- MariaDBと必要なパッケージをインストールする。
sudo apt update sudo apt install mariadb-server mariadb-client libmysqlclient-dev
- MariaDBの設定を開始する。MariaDB(MySQL)編の以下はこちらの記事と同じ内容になってる。
sudo mysql_secure_installation
Enter current password for root (enter for none):
と問われるのでEnter
を押す。Set root password? [Y/n]
と問われるのでn
を入力しEnter
を押す。Remove anonymous users? [Y/n]
と問われるのでy
を入力しEnter
を押す。Disallow root login remotely? [Y/n]
と問われるのでy
を入力しEnter
を押す。Remove test database and access to it? [Y/n]
と問われるのでy
を入力しEnter
を押す。Reload privilege tables now? [Y/n]
と問われるのでy
を入力しEnter
を押す。- 下記のコマンドを実行して「MariaDB」の対話モードを開始する。
sudo mariadb
root
でデータベースを操作するのはセキュリティ的に良くないので、root
に変わるRedmineで使うアカウントを作成する。GRANT ALL ON *.* TO '<username>'@'localhost' IDENTIFIED BY '<password>' WITH GRANT OPTION; FLUSH PRIVILEGES;
- Redmineで使うデータベースを作成する。
CREATE DATABASE <db_name>;
- MariaDBから抜ける。
EXIT;
- 「MariaDB」が起動してるか確認する。
sudo systemctl status mariadb
Redmineインストール編
- 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
- 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
- 今回、バージョンの高いRubyをインストールしてしまったので
/var/lib/redmine/Gemfile
を直接編集して無理やり対応する。(本当はrbenv
とか使って指定されてるバージョンのRubyを使う方が良いと思う)ruby '>= 2.5.0', '<= 3.3.1'
- Redmineのディレクトリに移動する。
cd /var/lib/redmine
- 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
- Apache用のPassengerをビルドする。(それなりに時間がかかる)
sudo passenger-install-apache2-module --auto --languages ruby
- 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>
/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>
- 私の環境ではApacheにもともと入ってる
mod_passenger.so
と先ほどビルドしたmod_passenger.so
が衝突してしまったので、もともとの方を読み込まないようにした。sudo a2dismod passenger
- 先程作ったRedmine用の設定ファイルを読み込んでApacheを再起動する。
sudo a2enconf redmine apache2ctl configtest sudo systemctl restart apache2
Redmine初期設定編
- RedmineのURL(例として
redmine.example.com/redmine
)にブラウザでアクセスする。 - 右上のログインをクリックする。
- 「ログインID」と「パスワード」の初期値はどちらも
admin
となってる。入力して「ログイン」をクリックする。 - パスワードの変更を求められるので、古いパスワード(
admin
)と変更後の新しいパスワードを入力する。 - 初期設定だとアクセスしたユーザーがアカウントを作成できたりしちゃうので最低限として後述の設定をする。
- 左上の「管理」をクリックする。
- 「管理」の中にある「設定」をクリックする。
- 「設定」の中にある「認証」タブをクリックする。
- 「認証が必要」を「はい」、「ユーザーによるアカウント登録」を「無効」にして「保存」をクリックする。
まとめ(感想文)
アプリケーションの開発の進捗管理とかにRedmineが使えるかもね!
引用・参考文献
下記の日本の公式サイトを参考にさせていただきました。ありがとうございました。