「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

        PassengerBaseURI /redmine
        PassengerAppRoot /var/lib/redmine


        Allow from all
        Options -MultiViews
        Require all granted


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=271http://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.htmlhttp://redmine.jp/tech_note/first-step/admin/ [/pukiwiki]