概要
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
動作を確認した環境
- Ubuntu 22.04
- Ruby 3.0
- Redmine 5.1
- mysql Ver 8.0.35
導入時
- 追加パッケージのインストール:要
- Gem追加:要
- DBマイグレーション:要
実施した手順
さっくりとならなかった手順
- 念のためDBバックアップ
- SSHログイン後、追加パッケージをインストール
- Redmineプラグインに移動
- gitでレポジトリをダウンロード
- 新規ジェムをインストール
- DBマイグレーション
- Webサービス再起動
- Redmine設定変更
- 切り戻し手順(それでも失敗した場合)
バックアップ取得
mysqldumpによるバックアップ
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のようにシステム全体のバックアップを取った方が後腐れがありません。
動作に必要な追加パッケージのインストールと設定
追加パッケージをインストールします。
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
プラグインのインストール
プラグインを配置します。
- 2024/05/29時点での最新バージョン3.1.4を利用します。
- v3.1.3以前のdmsfプラグインはパストラバーサルの脆弱性があります。脆弱性に対応したしたバージョンを用いてください。
cd /home/www-data/redmine/plugins && pwd
# redmineのplugins配下ディレクトリに移動します。
sudo -u www-data git clone -b v3.1.4 https://github.com/danmunn/redmine_dmsf
# 念のため、バージョンを指定します。
ls -ld /home/www-data/redmine/plugins/redmine_dmsf
# このディレクトリがあることを確認します
Gemをインストールします。
cd /home/www-data/redmine/ && pwd
# 自分の環境に合わせます。
sudo -u www-data bundle install
# bundleはかなり時間がかかります。
DBのマイグレーションを行います。
cd /home/www-data/redmine/ && pwd
# 自分の環境に合わせます。
sudo -u www-data bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Webサービスを再起動します。
sudo systemctl restart apache2
Redmine設定変更
WebDAV有効化
- Redmineに管理者アカウントでログインします。
- 管理>プラグイン>DMSFの「設定」をクリックします。
- 以下のように修正します。
- 貼り付けを許可にチェックを入れ、アップロードしたファイルをチケットなどに貼り付けられるようにします。
- WebDav:無効(デフォルトのままです)
- 任意のプロジェクトに移動します。
- 「設定」をクリックし、「文書管理」にチェックを入れます。
- また、Redmine管理画面の「ロールと権限設定」で、ユーザのアクセス権を忘れないようにしてください。(「文書管理」のセクションです)
以上で設定は完了です。
おまけ:切り戻し手順
この作業、Redmine5.1より手順は楽になったとは言え:やっぱりバージョン変更や設定ミスで軽くRedmine全体が機能不全に陥ります。そのため、切り戻し手順を記しておきます。
通常の切り戻し
ディレクトリ移動
cd /home/www-data/redmine && pwd
# 自分の環境に合わせます。
プラグインアンインストール
sudo -u www-data rake redmine:plugins:migrate NAME=redmine_dmsf VERSION=0 RAILS_ENV=production
ディレクトリ削除
sudo rm plugins/redmine_dmsf -Rf
Webサービス再起動
sudo systemctl restart apache2.service
それでもダメだった切り戻し(DBリストア)
cd /hoge
# mysqldumpを行ったディレクトリ
mysql -h localhost -u redmine -p redmine < redmine_backup.$(date +%Y%m%d).sql
# パスワードはredmineインストール時に設定したDBユーザのものです
sudo systemctl restart apache2.service