プロジェクト

全般

プロフィール

Redmine5.1にDMSFプラグインをインストール

バージョン 2 (手動人形, 2024/01/29 15:00) → バージョン 3/6 (手動人形, 2024/05/29 17:06)

{{toc}}

## 概要

https://atelier.reisalin.com/projects/zettel/knowledgebase/articles/39/

こちらの、Redmine5.1バージョンです。

Redmineをファイルサーバのように扱うプラグインをインストールします。

## 備考

- この作業、下手すればRedmine全体が使えなくなる作業です。(実際にRedmineが使えなくなりました)
- そのため、DBのバックアップとリストアによる切り戻し手順も込みです。

**2023年11月よりMicrosoftはWebDavを「非推奨」とする方針を打ち出しているため、本手順ではWebDAV設定は省いています。**

https://forest.watch.impress.co.jp/docs/news/1544482.html

## プラグイン名

- Redmine_DMSF
- https://github.com/danmunn/redmine_dmsf

### 動作を確認した環境

- Ubuntu 22.04
- Ruby 3.0
- Redmine 5.1
- mysql Ver 8.0.35

### 導入時

- 追加パッケージのインストール:要
- Gem追加:要
- DBマイグレーション:要

## 実施した手順

### さっくりとならなかった手順

1. 念のためDBバックアップ
2. SSHログイン後、追加パッケージをインストール
3. Redmineプラグインに移動
4. gitでレポジトリをダウンロード
5. 新規ジェムをインストール
6. DBマイグレーション
7. Webサービス再起動
8. Redmine設定変更
9. 切り戻し手順(それでも失敗した場合)

### バックアップ取得

#### mysqldumpによるバックアップ

```bash
cd /hoge
# 任意のバックアップディレクトリに移動します

mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql
# それぞれ -h ホスト名 -u redmine -p ユーザ オプション db名です。
# パスワードはredmineインストール時に設定したDBユーザのものです
```

環境が許すなら、AWSのようにシステム全体のバックアップを取った方が後腐れがありません。

### 動作に必要な追加パッケージのインストールと設定

#### 追加パッケージをインストールします。

```bash
sudo aptitude install xapian-omega ruby-xapian libxapian-dev poppler-utils antiword unzip catdoc libwpd-tools libwps-tools gzip unrtf catdvi djview djview3 uuid uuid-dev xz-utils libemail-outlook-message-perl
```

### プラグインのインストール

#### プラグインを配置します。

- 脆弱性に対応したv3.1.4移行を使用します。
- [https://jvn.jp/jp/JVN22182715/index.html](https://jvn.jp/jp/JVN22182715/index.html)
2023/01/20時点での最新バージョン3.1.3を利用します。

```bash
cd /home/www-data/redmine/plugins && pwd
# redmineのplugins配下ディレクトリに移動します。

sudo -u www-data git clone -b v3.1.4 v3.1.3 https://github.com/danmunn/redmine_dmsf
# 念のため、バージョンを指定します。

ls -ld /home/www-data/redmine/plugins/redmine_dmsf
# このディレクトリがあることを確認します
```

#### Gemをインストールします。

```bash
cd /home/www-data/redmine/ && pwd
# 自分の環境に合わせます。

sudo -u www-data bundle install
# bundleはかなり時間がかかります。
```

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

```bash
cd /home/www-data/redmine/ && pwd
# 自分の環境に合わせます。

sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production
```

#### Webサービスを再起動します。

```bash
sudo systemctl restart apache2
```

## Redmine設定変更

#### WebDAV有効化

1. Redmineに管理者アカウントでログインします。
2. 管理>プラグイン>DMSFの「設定」をクリックします。
3. 以下のように修正します。
1. 貼り付けを許可にチェックを入れ、アップロードしたファイルをチケットなどに貼り付けられるようにします。
2. WebDav:無効(デフォルトのままです)
4. 任意のプロジェクトに移動します。
5. 「設定」をクリックし、「文書管理」にチェックを入れます。
6. また、Redmine管理画面の「ロールと権限設定」で、ユーザのアクセス権を忘れないようにしてください。(「文書管理」のセクションです)

以上で設定は完了です。

## おまけ:切り戻し手順

この作業、Redmine5.1より手順は楽になったとは言え:やっぱりバージョン変更や設定ミスで軽くRedmine全体が機能不全に陥ります。そのため、切り戻し手順を記しておきます。

### 通常の切り戻し

#### ディレクトリ移動

```bash
cd /home/www-data/redmine && pwd
# 自分の環境に合わせます。
```

#### プラグインアンインストール

```bash
sudo -u www-data rake redmine:plugins:migrate NAME=redmine_dmsf VERSION=0 RAILS_ENV=production
```

#### ディレクトリ削除

```bash
sudo rm plugins/redmine_dmsf -Rf
```

#### Webサービス再起動

```bash
sudo systemctl restart apache2.service
```

### それでもダメだった切り戻し(DBリストア)

```bash
cd /hoge
# mysqldumpを行ったディレクトリ

mysql -h localhost -u redmine -p redmine < redmine_backup.$(date +%Y%m%d).sql
# パスワードはredmineインストール時に設定したDBユーザのものです

sudo systemctl restart apache2.service
```
クリップボードから画像を追加 (サイズの上限: 50 MB)