Redmine

オープンソースのプロジェクト管理システム「Redmine」を個人で利用する上での

など

Redmineインストール


Redmineインストール

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

本記事で実施すること

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

想定している読者

前提

特記事項

手順

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

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://barrel.reisalin.com/books/bbf94/page/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';
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
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

/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の設定ファイルを作成します。

【】を自分の作成したRedmineのサーバ名/ドメイン名に変更します。

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 を確認します

systemctl status apache2.service

active(running)を確認します

sudo systemctl restart apache2.service
systemctl status apache2.service

active(running)を確認します

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

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

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

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

Redmineインストール

Ubuntu 20.04/22.04/24.04にRedmine5.1をインストール

以下の環境でインストールを確認しています。

ですが、プラグインとの兼ね合いがあるため、Ubuntu 20.04にこのバージョンをインストールすることはおすすめしません。

本記事で実施すること

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

想定している読者

前提

特記事項

手順

Apacheのレポジトリを追加します。

sudo add-apt-repository ppa:ondrej/apache2

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

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

apacheのバージョンを確認します。

apache2ctl -v

Apache/2.4.59以降であることを確認します。2.4.58には、http/2プロトコルへの脆弱性があるので、左記のバージョンであることを確認します。

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

sudo gem install bundler racc mysql2

「3 gems installed」が表示されればインストール成功です。

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

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

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

https://barrel.reisalin.com/books/bbf94/page/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';
flush privileges;
exit

設定したDBでログインできることを確認します。

mysql -u redmine -p
SHOW DATABASES;
exit
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/5.1-stable /home/www-data/redmine

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

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

/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 bundle exec rake generate_secret_token

を実行すると、

Could not find date-3.3.4, timeout-0.4.1 in any of the sources
Run `bundle install` to install missing gems.

というメッセージが出てきます。

sudo -u www-data bundle update date

を実行して再度

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の設定ファイルを作成します。

【】を自分の作成したRedmineのサーバ名/ドメイン名に変更します。

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 を確認します

systemctl status apache2.service

active(running)を確認します

sudo systemctl restart apache2.service
systemctl status apache2.service

active(running)を確認します

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

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

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

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

Redmineインストール

Ubuntu 24.04にRedmine6.0をインストール

以下の環境でインストールを確認しています。

Ruby 3.1 / 3.2 / 3.3 が要件であるため、Ubuntu 22.04 / 20.04へのインストールは避けた方が無難です。

※ また、テーマやプラグインの仕様も大きく異なっているため、本格的な移行は筆者は様子見にしています。

本記事で実施すること

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

想定している読者

前提

特記事項

手順

Apacheのレポジトリを追加します。

sudo add-apt-repository ppa:ondrej/apache2

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

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

apacheのバージョンを確認します。

apache2ctl -v

Apache/2.4.59以降(2024/11/21現在2.4.62)であることを確認します。2.4.58には、http/2プロトコルへの脆弱性があるので、左記のバージョンであることを確認します。

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

sudo gem install bundler racc mysql2

「3 gems installed」が表示されればインストール成功です。

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

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

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

https://barrel.reisalin.com/books/bbf94/page/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';
flush privileges;
exit

設定したDBでログインできることを確認します。

mysql -u redmine -p
SHOW DATABASES;
exit
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/6.0-stable /home/www-data/redmine

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

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

/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の設定ファイルを作成します。

【】を自分の作成したRedmineのサーバ名/ドメイン名に変更します。

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 を確認します

systemctl status apache2.service

active(running)を確認します

sudo systemctl restart apache2.service
systemctl status apache2.service

active(running)を確認します

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

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

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

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

Redmineインストール

Redmine4.2(Redmine 5.x)のSSL設定

本記事で実施すること

想定している読者

前提

ここでの環境は以下の通りです。

特記事項

以下のようなSSL証明書の作成は別項で記載します。

手順

さっくりとした手順

  1. 証明書を適切なディレクトリに配置します。
  2. 常時SSLに対応できるようにモジュールをインストールします。
  3. Apacheの設定ファイルを常時SSL化に対応させます。
  4. Redmineの設定を変更します。
  5. [オプション]外部に公開しているRedmineの暗号化強度を確認します。

証明書の配置

※SSL証明書は、最長でも一年程度と更新サイクルが短くなっています。(Let's Encryptに至っては3ヶ月)

そこで、証明書更新の際にApacheの設定ファイルを修正することなく行えるように、証明書/秘密鍵ファイルにシンボリックリンクを張ります。

ディレクトリを作成します。

sudo mkdir /etc/certs

証明書を格納するディレクトリです

sudo mkdir /etc/private

秘密鍵を格納するディレクトリです

ディレクトリに証明書と秘密鍵を格納します。

など、適当な方法を用います。

ここではLet's Encryptで2023年1月に作成した「hoge.sample.com (/etc/letsencrypt/live/ドメイン名/に格納されています)」を

と定義します。

※中間証明書と分ける場合は

hoge.sample.com.crt.CA.202301

などと作成するとよいでしょう。

証明書のシンボリックファイルを作成します。

cd /etc/certs && pwd

/etc/certsにいることを確認

sudo ln -sf hoge.sample.com.crt.202301 hoge.sample.com.crt
ls -l hoge.sample.com.crt

リンクの向き先がhoge.sample.com.crt.202301であることを確認します

sudo ln -sf hoge.sample.com.crt.CA.202301 hoge.sample.com.CA.crt

このケースは、Global Sign, Sectigo, GeoTrustのように中間証明書が発行元から提供されている場合です。(Let's Encryptの場合はchain.pemに相当)

秘密鍵のシンボリックファイルを作成します。

cd /etc/private && pwd

/etc/privateにいることを確認

sudo ln -sf hoge.sample.com.key.202301 hoge.sample.com.key
ls -l hoge.sample.com.key

リンクの向き先がhoge.sample.com.crt.202301であることを確認します

証明書の整合性を確認します。

openssl x509 -noout -dates -subject -in /etc/certs/hoge.sample.com.crt

の期限が有効期間内であれば、適用できる証明書です。また、

が適用するドメインと一致していることを確認します。(例ではhoge.sample.com 。ワイルドカード証明書であれば *.sample.com

openssl x509 -pubkey -in /etc/certs/hoge.example.com.crt -noout | openssl md5
openssl pkey -pubout -in /etc/private/hoge.example.com.key | openssl md5

証明書と秘密鍵から取り出した公開鍵のハッシュ値を確認します。2つのハッシュ値((stdin)= ハッシュ値)が合致していれば、適切な証明書と秘密鍵の組み合わせです。

openssl crl2pkcs7 -nocrl -certfile /etc/certs/hoge.example.com.crt | openssl pkcs7 -print_certs -outform PEM | awk 'BEGIN {c=0;} /BEGIN CERTIFICATE/ {c++} { print > "cert" c ".pem"}' && openssl verify -CAfile cert2.pem cert1.pem

openssl verify -CAfile cert2.pem cert1.pem
cert1.pem: OK

を確認します。

openssl verify -CAfile /etc/certs/hoge.sample.com.CA.crt /etc/certs/hoge.example.com.crt

/etc/certs/hoge.example.com.crt: OK

を確認します。

常時SSLに必要なモジュールをインストールします。

モジュールの確認

cat /etc/apache2/mods-available/rewrite.load
cat /etc/apache2/mods-available/ssl.load
cat /etc/apache2/mods-available/headers.load

モジュール有効化

sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod headers

モジュール反映

sudo systemctl restart apache2

Apache設定ファイルの作成

http接続のみの設定ファイル無効化とコンフィグファイル退避

sudo mkdir -p /etc/apache2/old
cd /etc/apache2/sites-available && pwd
sudo a2dissite redmine.conf
sudo systemctl restart apache2.service

http接続のみの設定ファイルを無効化し、設定を反映します

sudo mv redmine.conf ../old/redmine.conf.$(date +%Y%m%d)

上記、http接続のみの設定ファイルをバックアップ用ディレクトリに移動します

常時SSL化の設定ファイル作成

cat <<- __EOF__ | sudo tee -a /etc/apache2/sites-available/redmine.conf
<VirtualHost *:80>
    servername 【hoge.example.com】
    # ドメイン名を指定します
    RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# HTTPアクセスを強制的にHTTPSにリダイレクトします
</VirtualHost>

<VirtualHost *:443>
    ServerName 【hoge.example.com】
    # ドメイン名を指定します
    DocumentRoot 【/home/www-data/redmine/public】
    # 自身の環境に合わせます
    <Directory 【/home/www-data/redmine/public】>
    # 自身の環境に合わせます
        Options -MultiViews
        AllowOverride All
        Require all granted
    </Directory>

#SSL設定
  SSLEngine on
    Protocols h2 http/1.1
  # SSLを有効化します

SSLCertificateFile 【/etc/certs/hoge.example.com.crt】
# SSL証明書を指定します
SSLCertificateKeyFile 【/etc/private/hoge.example.com.key】
# 秘密鍵を指定します

# SSLCACertificateFile 【/etc/certs/hoge.example.com.CA.crt】
# 中間証明書が発行元から別ファイルで提供されている場合は、この直上をコメントアウトして中間証明書を指定します

#セキュリティヘッダー付与

    Header always set Strict-Transport-Security "max-age=63072000"
    Header set X-Content-Type-Options "nosniff"
    Header always append X-Frame-Options "SAMEORIGIN"
    Header set X-XSS-Protection "1; mode=block"

</VirtualHost>

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:EC6-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
# これらのセクションはSSL暗号化強度を高めるための記述です
# </VirtualHost>の外側に書くことにご注意ください
__EOF__

設定を反映します

sudo a2ensite redmine

再設定したredmineの設定を有効化します

sudo apache2ctl configtest

Syntax OKを確認します。エラーがある場合はモジュールのインストールミスやファイルの指定ミスが多いです。

sudo systemctl restart apache2.service

設定反映後、ブラウザで指定したredmineのドメインにアクセスします。

を確認します。

Redmineの設定を変更します。

  1. Redmineに管理者でログインします
  2. 管理 → 設定に移動します
  3. 「ホスト名とパス」を例に従って記入します(hoge.example.com)
  4. 「プロトコル」をHTTP→HTTPSにします

これで、Redmineの常時SSL化が有効になりました。

(オプション)RedmineサイトのSSL暗号化強度を測定します。

以下の条件を満たしていれば、このチェックが可能です。

SSL強度チェックサイトにアクセスします。

https://www.ssllabs.com/ssltest/

情報を入力してチェックを行います。

  1. Hostname:RedmineのURL
  2. 「Do not show the results on the boards」にチェック(サーバにログを残しません)
  3. 「Submit」をクリックします。

2023年1月時点で、上記のApache設定ファイル通りであれば「A」と、ある程度の暗号強度の通信制が担保できています。

Redmineインストール

Redmine4.2(Redmine5.x)のログを設定する。

本記事で実施すること

想定している読者

前提

以下の環境で動かしています。

特記事項

テキストエディタを使って編集する箇所があります。必ずバックアップを取得し、失敗したときに切り戻しができるようにしましょう。

さっくりとした手順

  1. Apacheの設定ファイルを編集し、redmineの稼働ディレクトリにログを流すようにします。
  2. rsyslogを編集して日ごとにログを設定します。
  3. Redmineのプラグインをインストールして、管理画面からログを閲覧できるようにします。

Apache設定ファイルのバックアップを取ります。

cd /etc/apache2/sites-available && pwd
sudo cp -pi redmine.conf /path/to/backup/directory/redmine.conf.$(date +%Y%m%d)

バップアップディレクトリ及び設定ファイルの名前は自分の環境に合わせます

diff -u redmine.conf /path/to/backup/directory/redmine.conf.$(date +%Y%m%d)

差分が無いことでバックアップの取得を確認します

/var/log配下にシンボリックリンクを張ります。

cd /var/log && pwd
sudo ln -sf /home/www-data/redmine/log/ redmine

ログの格納場所は自分の環境に合わせます

ls -l redmine

所有者が設定したRedmineのログディレクトリに向き先があることを確認します

Apache設定ファイルを編集します。

次のファイルを教義・信仰に従ったエディタで編集します。

/etc/apache2/sites-available/redmine.conf

(※自分が作成したredmineのバーチャルサイトファイルです)

    CustomLog /home/www-data/redmine/log/access.log combined 
    ErrorLog /home/www-data/redmine/log/error.log
    # Redmineが配置されているディレクトリ/logに合わせます
    
# 追記箇所は
# <VirtualHost *:443>
#    ServerName [ドメイン名] の下
# CustomLog /home/www-data/redmine/log/access.log combined 
# ErrorLog /home/www-data/redmine/log
#
# 常時SSL化しているため、HTTP通信のアクセスログは設定しません
diff -u /path/to/backup/directory/redmine.$(date +%Y%m%d) /etc/apache2/sites-available/redmine.conf 

先ほど作成したバックアップと編集後のファイルの差分を取ります

 <VirtualHost *:443>
     ServerName Redmineドメイン名
+    CustomLog /home/www-data/redmine/log/access.log combined
+    ErrorLog /home/www-data/redmine/log/error.log
+

設定を反映します。

sudo apache2ctl configtest

Syntax OKを確認します

systemctl status apache2.service

active(running)を確認します

sudo systemctl restart apache2.service
systemctl status apache2.service

active(running)を確認します

ログが流れることを確認します。

tail -f /home/www-data/redmine/log/access.log

作成したログファイルです

このコマンドを発行し、何回かRedmineサイトにアクセスし、ログが正常に出ていることを確認します。

ログの所有者を変更します

sudo chown www-data:www-data /home/www-data/redmine/log/access.log
sudo chown www-data:www-data /home/www-data/redmine/log/error.log

この処理は、Redmineのログ閲覧プラグインの設定で必要です。

Redmineのログローテーションを設定します

cat <<- __EOF__ | sudo tee -a /etc/logrotate.d/redmine
【/var/log/redmine/】*.log {
        daily
        missingok
        ifempty
        copytruncate
        rotate 10
        compress
        su www-data www-data
}
__EOF__

これで、

などの処置を行います。

ログローテーション後の動作確認

 sudo logrotate -dv /etc/logrotate.d/redmine

エラーがないことを確認します

Redmineのログ閲覧プラグインをインストールします。

cd /home/www-data/redmine/plugins && pwd

自分の環境に合わせます。

sudo -u www-data git clone https://github.com/haru/redmine_logs
systemctl status apache2.service

active(running)を確認します

sudo systemctl restart apache2.service
systemctl status apache2.service

active(running)を確認します

ログ確認

  1. Redmineに管理者アカウントでログインします。
  2. 管理>ログに遷移します。
  3. 任意のログをクリックして閲覧できることを確認します。
Redmineインストール

Redmine4.2(5.x)とGmailを連携させる。

本記事で実施すること

想定している読者

前提

以下が必須です。

また、Redmineのディレクトリを

/home/www-data/redmine

としていますので、自分の環境に合わせてください。

注意事項

本記事により、以下のリスクが発生します。

そのため、この作業は細心の注意を払ってください。

手順

さっくりとした手順

  1. Gmailの2段階認証を有効にします。
  2. アプリパスワードを発行します。
  3. Redmine稼働サーバでメールの設定を行います。
  4. 送信確認を行います。

Googleアカウントでの作業

Googleアカウントで設定をします。

  1. Googleアカウント > セキュリティに移動します。
  2. Googleへのログインで「2段階認証プロセス」をオンにします。

どういう方法で認証をするかは運用に合わせてください。

アプリパスワードを用意します。

  1. Googleアカウント > セキュリティに移動します。
  2. Googleへのログイン > アプリパスワードに移動します。
  3. プルダウンメニューから以下を入力し、「生成」をクリックします。
    1. アプリを選択:メール
    2. デバイスを選択:その他(名前を入力)
    3. 任意の名前(redmine等)を入力
  4. 生成されたパスワードを控えます。このパスワードはGoogleアカウントへの完全なアクセス権が付与されることに注意ください。

Redmine管理サーバでの作業

メールサーバ情報を設定します。

【】内は、自分の環境に合わせます。

cat <<- __EOF__ | sudo tee -a 【/home/www-data/redmine/config/configuration.yml】
default:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "smtp.gmail.com"
      port: 587
      authentication: :plain
      domain: "smtp.gmail.com"
      user_name: "【Gmailアドレス】"
      password: "【上述したアプリパスワード】"
__EOF__
ls -l /home/www-data/redmine/configconfiguration.yml
# 配置したディレクトリは自分の環境に合わせます。
# ファイルがあることを確認します。

設定を反映します。

sudo systemctl restart apache2.service
# 自分が使っているWebサービスに合わせます。

Redmineでの設定

管理者アカウントでログインします。

  1. 管理>設定に移動します。
  2. 「メール通知」がタブが有効になっているので、このタブをクリックします。

通知メールの設定を行います。

以下を設定して「保存」をクリックします。

通知メールの確認を行います。

  1. Redmineの個人設定に移動します。 1.「自分自身による変更の通知は不要」のチェックを外し、保存をクリックします。
  2. 任意のチケットを発行/変更し、メールが届いていることを確認します。

以上で、設定は完了です。

Redmineインストール

Redmine4.2(5.x)のリマインダーを利用する。

概要

Redmineにはデフォルトでチケットの期日まで何日かメールで通知する機能が備わっています。

これにより、

ことが可能になります。

本記事では、この機能を有効化するシェルスクリプトを記します。

環境

以下の環境で動いていることを確認しています。

前提

この作業の前に、以下が必須です。

さっくりとした手順

  1. リマインダースクリプトを作成して実行権限を付与します。
  2. cronで定期実行されるようにします。

リマインダースクリプトの作成

mkdir /home/hoge/scripts

任意のディレクトリを指定します。

cd /home/hoge/scripts && pwd

リマインダースクリプトを作成します。

【】内は自分の環境に合わせ、書き換えてからコマンドを実行します。(詳細をコメントで書いています)

cat <<- __EOF__ |  tee -a redmine_reminder.sh
#!/bin/bash

# 引数でルートディレクトリを指定(デフォルトは/home/www-data/redmine)
REDMINE_ROOT=${1:-"/home/www-data/redmine"}

# 引数で日数を指定(デフォルトは3日)
DAYS=${2:-3}

# Redmineのルートディレクトリに移動
cd $REDMINE_ROOT

# リマインダーを送信
bundle exec rake redmine:send_reminders days=$DAYS RAILS_ENV=production
__EOF__

スクリプトに実行権限を付与し、動作を確認します。

chmod +x redmine_reminder.sh && ls -l redmine_reminder.sh

実行権がついていることを確認します

sudo -u www-data bash /home/hoge/scripts/redmine_reminder.sh

warningは無視して大丈夫です

締め切りが3日に到来するチケット一覧のメールが受信されれば成功です。

crontab追記

sudo crontab -e -u www-data

初めてこのコマンドを実行した場合、「crontabで用いるエディタは何か」を確認されます。自分の信仰や教義に合わせたエディタを選択してください。

# リマインドしたい日数を引数で指定できます
20 8 * * * /home/hoge/scripts/redmine_reminder.sh 31
30 8 * * * /home/hoge/scripts/redmine_reminder.sh 1

30 16 * * * /home/hoge/scripts/redmine_reminder.sh 7
40 16 * * * /home/hoge/scripts/redmine_reminder.sh 1

20 20 * * * /home/hoge/scripts/redmine_reminder.sh 3
30 20 * * * /home/hoge/scripts/redmine_reminder.sh 1

この例では、

をそれぞれ通知します。

また、このスクリプトでは、

20 8 * * * /home/hoge/scripts/redmine_reminder.sh /home/www-data/redmine2 31

のように、 同一サーバ上に複数のRedmineが動いている場合でも、他のディレクトリを指定可能です。

追記確認

sudo crontab -l -u www-data

追記した内容があることを確認します。

cat /var/log/cron.log

が、crontabに追記した時間帯にあれば設定完了です。

後は、指定した時間にメールが通知されることを待ちましょう。(キチッと確認したい場合は、cronの実行時刻を調整してください)