Skip to main content

Ubuntu 20.04にRedmine4.2(またはRedmine5.0)をインストール

本記事で実施すること

  1. Redmineを動かすためのパッケージがインストールできるように準備をします。
  2. Redmineを動かすためのパッケージ(Ruby/データベース/Webサービスなど)をインストールします。
  3. データベースやWebサービスの基礎設定を行います。
  4. Redmineの動作確認を行います。

想定している読者

  • 「Redmine」をUbuntuにインストールしてみたい
  • まずは動くところまで確認できればいい

前提

  • Ubuntuサーバの初期設定が終わった直後の状態を想定します。
  • DNSでドメインの名前が解決できることを前提としています
  • 環境は以下の通りです。
    • Apache系
    • MySQL
    • Ruby 2.7
  • また、パッケージ管理としてaptitudeを用いています。aptが好みの方はこちらに読み替えてください。

特記事項

  • 本手順ではRedmine 4.2 / Redmine 5.0のどちらかがインストール可能です。
  • 本Redmineでは4.2にしています。
    • 5.x系にしないのは「筆者が使いたいプラグインが4.2系まででしか動作確認できなかった(2023年1月現在)」という単純にして重要な理由です。
    • 同様に、Ubuntu22.04でインストールできるRedmineのバージョンは5.x以降となるため、インストールするUbuntuは20.04系になっています。
  • 本記事のredmineの格納ディレクトリは/home/www-data/redmineです。一般的なディレクトリ(/var/lib/redmine)と異なることを最初に注記します。
  • また、Ubuntu22.04以降はRubyのバージョンが異なるため、4.2系がインストールできません。

手順

必要なパッケージをインストールします。

  • パッケージ全体のアップデート
sudo aptitude update
  • 必要パッケージのインストール
sudo aptitude install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev mysql-server mysql-client apache2 apache2-dev libapr1-dev libaprutil1-dev imagemagick libmagick++-dev fonts-takao-pgothic subversion git ruby libruby ruby-dev libmysqlclient-dev

apacheの追加モジュールをインストールします。

sudo aptitude install libapache2-mod-passenger

rubyのパッケージ管理(gem)を用いて必要なライブラリをインストールします。

sudo gem install bundler racc mysql2
# 「3 gems installed」が表示されればインストール成功です。

必要に応じてmysqlの初期設定を行います。

mysql_secure_installationによる初期設定を行います。

うまくいかない場合は以下を参照してください。

https://atelier.reisalin.com/projects/zettel/questions/5-mysql_secure_installation

mysqlでDBとユーザーを設定します。

sudo mysql -u root -p
# 上記で設定した「mysqlのrootパスワード」を入力し、mysqlにログインします
CREATE DATABASE redmine character set utf8mb4;
/* DB "redmine" を作成します */

CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password';
/* ユーザ "redmine"を作成し、パスワードを設定します*/
/* この'password'は任意のパスワードに変更してください*/

GRANT ALL ON redmine.* TO 'redmine'@'localhost';
/* DB "redmine"の権限をユーザ "redmine"に委譲します*/

flush privileges;
/* 設定を反映させます*/

exit

Redmineプログラムを配置します。

sudo mkdir -p /home/www-data/redmine

sudo chown -R www-data:www-data /home/www-data

sudo -u www-data svn co https://svn.redmine.org/redmine/branches/4.2-stable /home/www-data/redmine
# Redmine 5.0をインストールしたい場合は以下を実行します。
# sudo -u www-data svn co https://svn.redmine.org/redmine/branches/5.0-stable /home/www-data/redmine

Redmineのコンフィグを設定します。

sudo cp -pi /home/www-data/redmine/config/database.yml.example /home/www-data/redmine/config/database.yml

sudo vi /home/www-data/redmine/config/database.yml
# 教義・信仰に従ったエディタで編集してください。

database.yml 編集内容

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  # rootからredmineに変更します
  password: "redmine用のパスワード"
  encoding: utf8mb4
# 本番環境(production)のみ設定を行います

Redmineのマイグレーションを行います。

cd /home/www-data/redmine/ && pwd
# /home/www-data/redmine/ (Redmineを配置したディレクトリ)であることを確認します

sudo -u www-data bundle install --without development test --path vendor/bundle

sudo -u www-data bundle exec rake generate_secret_token

sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate

sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

Apacheの設定ファイルを作成します。

cat <<- __EOF__ | sudo tee -a /etc/apache2/sites-available/redmine.conf
<VirtualHost *:80>
    ServerName hoge.example.com
    # ServerNameは自身が設定したredmineに読み替えてください。
    DocumentRoot /home/www-data/redmine/public
    <Directory /home/www-data/redmine/public>
        Options -MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
__EOF__

設定を反映させます。

ls -l /etc/apache2/sites-available/redmine.conf
# ファイルがあることを確認します。

sudo a2ensite redmine.conf
# 設定ファイルを有効化します

sudo a2dissite 000-default.conf
sudo a2dissite default-ssl.conf
# 初期サイト設定を無効化します

sudo apache2ctl configtest
# Syntax OK を確認します

sudo systemctl restart apache2.service

systemctl status apache2.service

Webページの表示を確認します。

http://設定したRedmineドメイン

でRedmineのトップページが表示されれば成功です。

直ちにadmin/adminでログインし、強固なパスワードを設定し直します。

次のステップでやること

  • SSL接続を有効化します。
  • ログのローテーションを有効化し、適切なアクセスログを設定します。