「redmine」タグアーカイブ

UBUNTU 22.04 redmine 5.0移行

前回、サクッとubuntu 20.04 to 22.04にdo-release-upgradeしたらredmineが無くなっていてがっかりして20.04に戻したのですが。。。コロナにかかって自宅待機になったことを機に(笑)、移行実施しました。

前提: gcp上で動いてるubuntu 20.04マシンをライブで22.04に上げます。

まずはsnapshotを取って、サクッと do-release-upgrade。基本元のコンフィグ残す方向で Nを選択。

終わったら不具合ないか確認。私の場合は何点かあった。

1.apache2が上がらない。/etc/apache2/mod-enabled/php7*が残ってたのが原因。

$ cd /etc/apache2/mod-enabled; sudo rm php7*
$ sudo a2enmod php8.1
$ sudo systemctl start apache2 で復旧

2.TeraTERMから繋がらなくなった。sshでssh-rsaが禁止されたのが原因。

https://blog.hitsujin.jp/entry/2022/04/24/010000

という訳で、putty-keygenでssh-ed25519でキーを作りなおした。

3.muninで一部値が取れなくなってる。。。これは急がないのでそのうち直す。

4.redmineが無くなった。これが今日の主題!

Redmine 5.0インストール

ないものは持ってきて入れるしかないので以下のBLOGを参考にRedmineをインストール。せっかくなので5.0で。

https://blog.redmine.jp/articles/5_0/install/ubuntu/

方針: データは20.04のパッケージredmineのデータを引き継ぐ。パッケージでもいいものはパッケージを利用する。

1.何はともあれバックアップ

$ mysqldump -u root -p redmine_default >redmine_default.sql
$ sudo tar cvfz /work/ubuntu2004redminebakup.tar.gz usr/share/redmine var/lib/redmine etc/redmine var/log/redmine var/cache/redmine

2.必要なパッケージインストール

DBは元々MySQLを使っていたので引き続きMySQLを使う(インストール済みの想定)。Rubyはパッケージの3.0.2を使う。Passengerもパッケージを利用。

$ sudo locale-gen ja_JP.UTF-8
$ sudo apt install -y build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev
$ sudo apt install -y apache2 apache2-dev
$ sudo apt install -y imagemagick fonts-takao-pgothic
$ sudo apt install -y subversion git
$ sudo apt install -y passenger libapache2-mod-passenger

3.DB移行

ubuntu 20.04のパッケージredmineはredmine_defaultという名前のdatabeseになっているので、今回は、redmineという名前で作り直してデータをストアすることにした。

$ mysql -u root -p
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'ぱすわーど';
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

$ mysql -u redmine -p redmine < redmine_default.sql

4.Redmineインストール

ubuntu20.04パッケージ版のredmineは /var/lib/redmine/defaultを使っているので、/var/lib/redmineをそのまま使う。

$ cd /var/lib/redmine
$ sudo -u www-data svn co https://svn.redmine.org/redmine/branches/5.0-stable /var/lib/redmine

パッケージの添付ファイルフォルダとpluginsフォルダをコピーしておく
$ sudo cp -rp default/files .
$ sudo cp -rp /usr/share/redmine/plugins .

コンフィグも流用して一部修正
$ cd config
$ sudo cp -p /etc/redmine/default/database.yml .
usernameがredmine/instanceになってるのでredmineに変更
databaseがredmine_defaultになってるのでredmineに変更
$ sudo cp -p  /etc/redmine/default/configuration.yml .
これは特に直すとこなし

$ cd /var/lib/redmine
rootでbundle実行していいのか?とも思うが。。。
$ 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 -u www-data RAILS_ENV=production bin/rake redmine:plugins:migrate
$ sudo -u www-data RAILS_ENV=production bin/rake tmp:cache:clear

5.apche2設定変更

/etc/apache2/conf-enabled/redmine.conf修正
Alias "/redmine" /var/lib/redmine/public
<Location /redmine>
        PassengerBaseURI /redmine
        PassengerAppRoot /var/lib/redmine
</Location>
<Directory "/var/lib/redmine/public">
        Allow from all
        Options -MultiViews
        Require all granted
</Directory>

apache再読み込み
$ sudo apachectl configtest
$ sudo systemctl reload apache2

これで、redmineが見られるようになったはず。

6.その他微調整

i. logrotate設定

/etc/logrotate.d/redmine
# Redmine logs:
/var/lib/redmine/log/*.log {  # ←ここ直す
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  copytruncate
}

ii. cron.d修正

/etc/cron.d/redmine修正 (redmineのパス修正)
30 6 * * * root cd /var/lib/redmine; bundle exec rake redmine:send_reminders days=3 RAILS_ENV=production > /dev/null 2>&1

iii. checklists pluginを入れていたのだが、うまく引き継がれなかったので、再度、インストールした。

7.ubuntu 20.04のパッケージredmineさようなら

動作確認が終わったら、古いredmineを消す。

$ sudo apt remove redmine redmine-sqlite
$ sudo rm -r /etc/redmine/default
$ sudo rm -r  /var/cache/redmine
$ sudo rm -r /var/log/redmine
$ sudo rm -r /usr/share/redmine
$ mysql -u root -p
mysql> drop database redmine_default;
mysql> drop user 'redmine/instance'@'localhost';

以上

p.s.

やらなくてもいいと言えばいいのですが。。。redmineパッケージを削除すると、apt upgradeするたびに、redmineパッケージインストール時に依存関係で一緒にインストールされたであろうrubyのサブモジュールパッケージが大量にもう使ってないよ。apt autoremoveで削除できるよと言ってくるんですよね。うざいのでautoremoveを実行したら見事に、redmine動かなくなりました(笑)

まぁ、再度

$ sudo bundle install –without development test

してやれば問題なく動きました。gemはパッケージでもbundleで入れても問題ないようですね。

Redmine checklists Pluginで日本語が使えない

Ubuntu 20.04のRedmineに入れたchecklistsプラグイン 3.1.20で日本語を入れてみたところInternal Server Errorが出てしまった。production.logを確認したところ以下の様なエラーが出ていた。

ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value: '\xE2\x91\xA0202...' for column 'subject' at row 1: INSERT INTO `checklists` (`subject`, `issue_id`, `created_at`, `updated_at`) VALUES ('ほげほげ', 306, '2022-01-14 22:26:46', '2022-01-14 22:26:46')):

調べてみると以下の情報がヒットした。

https://qiita.com/tomaaaaaaaa/items/08ce75b95df3d310817a

確かにcharacter_set_databaseがlatin1になっていた。。。これは、database.yml にcharset: utf8が入ってなかったためのようです。(encoding: utf8は入っていたので、Redmine自体は日本語が使えており気づきませんでした。)

作ってしまった今から設定を変えても作ってしまったDBには影響しないので、変換してやる必要があります。以下の情報をもとに、どのテーブルがlatin1でできてしまっているか調べてみると、checklist系のテーブルだけでした。

https://www.karakaram.com/changing-the-character-set-to-utf8mb4-after-creating-mysql-table/

SELECT TABLE_NAME,TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=’DB名’;

| checklist_template_categories | latin1_swedish_ci|
| checklist_templates           | latin1_swedish_ci|
| checklists                    | latin1_swedish_ci|

この3つのテーブルをutf8に変換します。

ALTER TABLE checklist_template_categories
    CONVERT TO CHARACTER SET utf8
    COLLATE utf8_general_ci;

ALTER TABLE checklist_templates
    CONVERT TO CHARACTER SET utf8
    COLLATE utf8_general_ci;

ALTER TABLE checklists
    CONVERT TO CHARACTER SET utf8
    COLLATE utf8_general_ci;

とりあえず、直りました 🙂

今後のために、以下を入れておきました。

/etc/redmine/default/database.yml
charset: utf8
encoding: utf8

/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
character-set-server=utf8

あと気になったのが、chrome 97.0.4692.71ではなぜか、作ったチェックリストを削除できませんでした。(ゴミ箱アイコンをクリックしても何も反応しない)試しに、Edge 97.0.1072.62 で同じことをしたらできたので、JavaScriptの動きの問題のようです。。。うーん。

redmineとsvnの連携 on ubuntu 12.04LTS

[pukiwiki]
Redmineで上がっているチケットに対する対応を実際の設定ファイルのバージョン管理と連動させる事ができる。
http://redmine.jp/tech_note/subversion/
このURLに書かれている内容は、既にsvnのリポジトリが作成されている前提なので、先にSVNのリポジトリ設定をしておく必要がある。
ubuntu 12.04 LTSの場合、以下の様な手順で可能。
+subversionのインストール
# apt-get install subversion subversion-tools libapache2-svn
+apache経由で管理できるようにする(svnとredmineが同じマシンに入ってるので、ファイルを直接指定すこともできるが今回はapache経由でアクセスする様にしてみる)
# vi /etc/apache2/mods-enabled/dav_svn.conf

DAV svn
SVNParentPath /var/lib/svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/redmine/htpasswd
Require valid-user
Order deny,allow
Allow from 192.168.x.0/24
Deny from All

+認証用パスワードの設定
# htpasswd /etc/redmine/htpasswd ユーザ名
+apacheに設定反映
# apachectl configtest
Syntax OK
# apachectl graceful
+svnリポジトリ作成
# mkdir /var/lib/svn
# cd /var/lib/svn/
# svnadmin create config
# chown -R www-data:www-data config
+redmineのリポジトリ設定~
redmineのWebUIから[管理]-[設定]-[リポジトリ]から使用するバージョン管理システムでSubversionのチェックが入っており、グリーンのレになっていることを確認する。(だめな場合は、パッケージが入っているか、パスが通っているかなど確認する)
+redmineのWebUIから[管理]-[プロジェクト]でリポジトリを追加するプロジェクトを選び、[モジュール]でリポジトリにチェックを入れ、保存。リポジトリタブを選び、
バージョン管理システム Subversion
URL http://192.168.x.x/svn/config
ログイン ユーザ名
パスワード htpasswdで付けたパスワード
これでプロジェクトページに行けば、リポジトリというメニューが追加されているはずである。
最初のは空っぽなので、svnでインポートするなり、コミットするなりご随意に 🙂
WindowsPCでSVNを扱うなら TortoiseSVN がおすすめです。~
http://sourceforge.jp/projects/tortoisesvn/
参考
-http://wisdomtrees.net/?p=271
-http://redmine.jp/tech_note/subversion/
[/pukiwiki]

Redmine on ubuntu 12.04 TLS

[pukiwiki]
最近仕事でredmineを使うことが多い。プロジェクトでやることを管理するにはとても便利です。そんな訳で実験用と自分の備忘録を兼ねて自宅マシンにredmineを入れてみた。本当は最新版を入れてみようと思ったのだが、面倒になったのでubuntuのパッケージで(^^;
前提
-ubuntuのパッケージを使う
-redmineのDBはmysqlを使う
-mysqlはもう入っている
-apacheはもう入っている
手順
+redmineはRuby on Railsというプラットホームで動作するのだが、apacheから使うためにはlibapache2-mod-passengerというパッケージが必要。依存関係でその他色々入るはず。
# apt-get install libapache2-mod-passenger
インストールすると勝手に、mod-enableされるので、特に設定は不要。
+redmineインストール
# apt-get install redmine-mysql
# apt-get install redmine
途中で色々聞かれるので適時答える。
–/etc/redmine/に設定ファイルを置くか?→YES
–DBに何を使うか→MySQL
–MySQLの管理パスワードは何か→MySQLのrootのパスワード入力
–redmineDBのパスワード→決める
–MySQLの接続方法→UNIXソケット
+redmineがWebから見えるようにApacheの設定。私は http://(ホスト名)/redmine/ で見えるようにしたかったので、以下の様に設定。
/etc/apache2/conf.d/redmine.conf
# apache2 serves public files
Alias “/redmine/plugin_assets/” /var/cache/redmine/default/plugin_assets/
Alias “/redmine” /usr/share/redmine/public

RailsBaseURI /redmine
RailsEnv production
SetEnv X_DEBIAN_SITEID “default”
SetEnv RAILS_RELATIVE_URL_ROOT “/redmine”


Order deny,allow
Allow from All

+apacheに反映
# apachectl configtest
Syntax OK ←OKであることを確認
# apachectl graceful
+redmineの http://(ホスト名)/redmineにアクセスし、初期設定をする。~
初期状態ではadmin/adminでログインできる。
++右上の[My account]→[Change password]でパスワードを変更する。
++LanguageをJapanese(日本語)にする。(ご随意に)
++左上のの[管理]→[認証]で認証あ必要にチェックを入れる (そうしないと認証なしで見えてしまう)
APPENDIX
-通知メールを送るための設定~
# cp /usr/share/redmine/config/configuration.yml.example /etc/redmine/default/configuration.yml
# vi /etc/redmine/default/configuration.yml
こんな感じ
default:
# Outgoing emails configuration (see examples above)
email_delivery:
delivery_method: :smtp
smtp_settings:
address: “localhost”
port: 25
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: smtp.example.net
# port: 25
# domain: example.net
# authentication: :login
# user_name: “redmine@example.net”
# password: “redmine”
参考
-http://niceymercibeaucoup.blogspot.jp/2013/01/redmineubuntu1210.html
-http://redmine.jp/tech_note/first-step/admin/
[/pukiwiki]