Dinesh Bafna

Successful Entrepreneur and Business Leader

redmine wiki 画像 8

2020/05/31. ページ名. Redmineのクラウドサービス「My Redmine」 初期費用は無料で1000ユーザーまで月額8000円(税別)です。オンプレミスのRedmineをクラウドに移行することもできます。 1ヶ月の無料お試し受付中です。 My Redmineについて見る . redmineで注記を増やしていくとだんだん過去の注記を参照させたくなるときがある。 Redmineのプラグインのインストール方法(WindowsとLinux各々解説). RedmineをCentOS 8上で動かすためのセットアップメモです。RedmineをCentOS 7上で動かすーUnicornとNginx編のCentOS 8版です。, 上述開発ツール一式("Development Tools")には含まれていないパッケージを追加インストールします。ただし、CentOS 7の時に入れていたパッケージのうち以下はCentOS 8では提供されていないので、以下のインストールは保留して次へ進みます。, 現行のRedmineをMySQL(MariaDB)で運用しているので、ここではMariaDBを入れます。MariaDBは、モジュラーリポジトリで提供されています。, ぐぐってみたところ、module perlをenableすると解消できるとの記載を見かけたので対応を実施。https://centosfaq.org/centos/yum-dnf-possible-confusion-centos-8/, MariaDBは、同一マシン上で実行するRedmineプロセス、および同一マシン上にログインしたコンソールから接続するので、ファイアウォール設定は省略します。, Redmine 4.0.1 でRuby 2.6に対応しています。https://www.redmine.org/issues/30118, Readmineアプリケーションをroot権限で実行することは望ましくないので、Redmineを実行する専用のユーザーアカウントを作成します。, Redmineを、/var/lib/ディレクトリ下に、リポジトリのクローンとして展開します。Redmineの公式リポジトリはSubversionですが、githubにミラーが公開されているので、そちらから取得します。ブランチ名を指定して取得します。Redmine 4.1系は、ブランチ名が4.1-stableとなります。, MariaDBのデータベースユーザーのパスワードを記述しているのでパーミッションを厳しく設定しておきます。, database.ymlのdatabase項に指定したMariaDB上でRedmineのテーブルを収容するデータベースをMariaDB上に作成します。, database.ymlのusername項とpassword項に指定したユーザーをMariaDB上に作成します。, Redmineにはサンプルとしてconfiguration.yml.sampleが含まれているので、このサンプルから設定を抜き出し修正するとよいでしょう。今回はメールサーバーをローカルとして使用します。, /var/lib/redmine-4.1-stable/config/configuration.ymlを作成します。, 上記例では記載していませんが、メールサーバによってはパスワードを記述するのでパーミッションを厳しく設定しておきます。, rubyモジュールのリポジトリである rubygems.org はDNSで名前解決をするとIPv6とIPv4のアドレスを返却しますが、このうちIPv6アドレスでrubygems.orgに接続しようとしても無応答でインストールが失敗します。, Redmine本体が依存するRubyモジュール群をインストールします。Rubyモジュールのインストールには、rubyのbundlerを使用します。Redmineが依存するRubyパッケージは、Redmineのインストールディレクトリ下のvender/bundlerを指定し、そこへインストールします。, Redmine本体および依存するRubyモジュールのインストールが終わったら、Redmineの初期化を行います。, 改ざん防止のため、セッションデータを格納するクッキーを暗号化する鍵をランダムに生成します。, Redmine(Ruby on Rails)デフォルトのWebアプリケーションサーバー WEBrick でRedmineの動作確認をします。, 以下のコマンドで一時的にファイアウォールでポート3000を許可します。永続設定ではないので再起動すれば3000の許可は消えています。, ブラウザから、ポート3000へアクセスしRedmineの画面が表示されることを確認します。, Rubyアプリケーションを動かすアプリケーションサーバー(Rackサーバー)のUnicornをセットアップします。, UnicornはRubyモジュール(gem)として提供されるので、bundlerでインストールします。Redmineをインストールしたディレクトリ下(例:/var/lib/redmine-4.1-stable)に、Gemfile.localというファイルを作成し、そこに以下を記述します。, Redmineをインストールしたディレクトリで bundle update を実行します。, コマンドラインからUnicornを起動してRedmineの動作を確認します。先にWEBrick確認時に一時的にファイアウォールにあけたポート3000を使用します。, Unicornは、マスタープロセス1つにワーカープロセスが複数という構成で実行します。, デーモンプロセスに対する設定ファイル再読み込みトリガーはシグナルHUPをマスタープロセスに送ります。このとき、preload_appがfalseだとアプリケーションプログラムも再読み込みされますが、preload_appがtrueだと再読み込みされません。, シグナルUSR2を使うと、古いマスタープロセスは新しいプロセスを作ってソケットを引継ぎます。古いプロセスはそのまま残っています。pidファイルは新プロセスの値に書き換えられます。古いpidファイルは.oldbinの拡張子が付いたファイルに変更されます。preload_appがtrueのときにアプリケーションプログラムを再読み込みするにはこのシグナルUSR2を使います。, シグナルUSR2を送っただけでは古いマスタープロセスとその配下のワーカープロセスは終了しないので、シグナルUSR2を送ったあとに古いマスタープロセスに対してシグナルQUITを送るとよいのかと思います。, CentOS 8で動かすにあたり、少し時間をかけてUnicornの設定ファイル(unicorn.rb および Systemd の service ファイル)の書き方を追究し、理解を深めます。, Nginxの設定ファイルには、Redmineへの絶対パスを記述する箇所があります。Redmineのバージョンにより絶対パスが異なると、バージョンアップの度に設定ファイルを変更する必要が生じます。これを避けるため、バージョンには依存しないパスをシンボリックリンクで作成します。, Redmineインストールディレクトリ下のconfigディレクトリに、unicorn.rbというファイル名で設定を記述します。Unicorn起動時にオプションで設定ファイルを指定します。, この設定ファイルは、Unicornを実行するときにカレントディレクトリが/var/lib/redmine/にあることを前提としています。, 応答性を良好に保つには、コア数以上のワーカーを指定します。ただし、仮想化環境ではCPU使用率とメモリ使用量を見ながらワーカー数を許容範囲まで増やします。, workerがこの秒数以上処理に費やすとプロセスを落とします。デフォルトは60秒です。大抵の処理はずっと短いので60秒は大きすぎる値ですが、中に時間のかかる処理があれば処理時間に応じて値を増やします。, Redmineでは、大きなサイズの添付ファイルのアップロード・ダウンロードが該当します。Redmineの添付ファイルサイズ上限のファイルを実際にアップロード・ダウンロードさせてかかる時間を計測し、それを許容できる処理時間を設定します。, ここで設定するunicornのタイムアウト値とNginxのタイムアウト値が不整合だとかなり怪しい挙動となりますので、両者のタイムアウト値を整合させるようにしてください(unicornのタイムアウト値+αをnginxのタイムアウト値にする、αは1ないし2秒程度、等)。, unicornを起動したときにそのプロセスIDを記録しておくファイルを指定します。, Redmineインストールディレクトリ下のlogディレクトリの中にログファイルを生成します。, trueに設定すると、マスタープロセス起動時にアプリケーションをロードし、ワーカープロセスをフォークするとアプリケーションが実行可能となります。複数ワーカープロセスでコードを共有するため、メモリ使用効率もよくなります。デメリットは、ワーカープロセスを再起動してもアプリケーションはロードされない点です。, ワーカープロセスをforkする前にマスタープロセスによって呼ばれます。USR2シグナルで新旧マスタープロセスが共存する場合は、旧マスタープロセスにQUITシグナルを送って終了させます。, Redmine(Unicorn)は、起動時にデータベースに接続できないとエラー終了してしまいます。そこで、[Unit]セクションにAfterで、mariadb.serviceが実行されてからredmine-unicorn.serviceが起動されるよう順序を指定します。, SystemdでExecStartにより実行したプロセスの実行ユーザーをroot以外にする場合、[Service]セクションのUser、Groupでユーザー・グループを設定します。, SELinuxの設定上、WorkingDirectoryとPIDFileに設定するパスはシンボリックリンクファイルを含まない実パスで設定します。, Unicorn起動時にUNIXドメインソケットファイルを/var/run/unicornディレクトリ下に作成します。/var/runディレクトリ直下にファイルを作成するにはroot権限が必要なため、ExecStartPreで/var/run/unicornディレクトリを作成します。ここではディレクトリ作成にinstallコマンドを使っていますが、これはディレクトリ作成とパーミッションの設定をまとめて実施できるためです。, PermissionsStartOnly=true を指定しておくと、UserおよびGourpを指定していてもExecStartPreはroot権限で実行されます。, 以下のようにsystemctlでstartし、statusを確認し実行状態になっていれば正常に起動しています。, CentOS 8 のリポジトリ(AppStream)にて、Nginxが提供されています。バージョンは1.14と1.16があり、今回は1.16を使用します。, ブラウザからポート80にアクセスし、「Welcome to nginx on Red Hat Enterprise Linux!」が表示されたら確認OKです。, Redmineへのアクセスを https 化(TLS化)します。検証環境では、然るべきSSLサーバー証明書が用意できないので、自己証明書を作成します。, まず、最近のWebブラウザでは、Subject Alternative Name(SAN) を含めないとアクセスができないのでまずSAN情報をテキストファイルに記述します。, ワイルドカードを使って複数のホスト名に対応させることができます(DNS指定の場合)。, 旧バージョンのRedmineからデータを引き継いで運用する場合の手順です。データベースを移行(旧Redmine環境からRDBMSのデータをエクスポートし、新Redmine環境のRDBMSへインポート)すると、プラグインのデータも含まれています。そこで、Redmine本体とデータベースを使用するプラグインをあらかじめインストールしてからデータベースのマイグレーションを実行します。, 旧Redmine 3.4 から Redmine 4.1 へバージョンアップする場合の、プラグインの移行についてです。現在移行対象とする Redmine 3.4 で稼働しているプラグインと、Redmine 4.1対応状況です。, 1 本家は未対応、フォーク版がいくつかあり、4.x対応https://github.com/torutk/redmine_glossary, 2 IE11対応が必要なら0.3-stableブランチ、不要なら1.0にバージョンアップ, 3 Redmine本家サイトのPlugin Directoryには、Redmine 4対応のフォーク版が掲載(2020-04-22現在), 4 プラグインの数を減らすため放棄、routes設定で直接制御https://torutk.hatenablog.jp/entry/20130701/p1, 5 URLは https://github.com/two-pack/redmine_xls_export 類似プラグインに Redmine XLSX format issue exporter あり, 6 Redmine 4対応はうたっていないので、だめな場合の代替手段も検討する類似プラグイン Redmine Toggle SidebarView Customizeプラグインで制御 Redmineでサイドバーを開閉可能とし、かつ縦スクロールでも隠れないようにする, 移行しないプラグインについて、データベースを使用しないプラグインは、Redmine 4.1で入れないだけで問題はありません。データベースを使用するプラグインは、データベースを元に戻す必要があります。これは移行作業の際に旧Redmine 3.4上で当該プラグインのmigrateでバージョン0に戻す(プラグインが変更したデータベーススキーマを戻す)ことで対処します。, エクスポートしたデータベースを、Redmine 4.1のデータベースにインポートします。, データベースの内容を移行したら、続いてデータベースのマイグレーションを実施します。それには、まずRedmine本体のマイグレーションを行い、次にプラグインのマイグレーションを実施します。, MariaDBの設定では、文字コードをutf8mb4(各文字は最大4バイトで補助文字を含む)としましたが、過去のデータベースデータはutf8(各文字は最大3バイト)である場合、インポートした結果は過去の設定であるutf8のままとなります。このテーブルに4バイトからなるUTF-8文字を書き込むとエラーになります。Redmineの場合は、例えば「絵文字を含む文章をWiki記述して保存したところInternal Errorが返ってきた」という状況になります。, 指定したテーブルとそのカラムの文字コード、照会順序を変更するコマンドを次に示します。, versionsテーブルのCHARACTER SETはutf8mb4に、同テーブルのCOLLATIONはutf8mb4_generic_ciになりました。, RedmineデータベースのすべてのテーブルのCHARACTER SETをutf8からutf8mb4に変更するのに、テーブル1つ1つについて上述のコマンドを手打ちするのは大変です。そこで、ごそっとスクリプトを作って実行します。, redmineインストールディレクトリの下のfilesディレクトリの内容を旧Redmineから新Redmineへコピーします。, 旧Redmineと同じマシン上にあるSubversionとGitとをバックアップし、新Redmineのマシンに移行します。, 新subversionリポジトリに復元します。/var/lib/svn、/var/lib/subversion/repo、/var/www/svn にはSELinuxでHTTPサーバーからアクセスできる設定が定義済みなので、このいずれかにsubversionリポジトリを設けるとよいでしょう。, TODO: apache httpdをインストール後、/var/lib/svn以下のオーナー、グループをapacheに変更し、またhttpdからRedmine認証を経てアクセスする設定を設ける, 新gitリポジトリに復元します。CentOS 8のSELinuxポリシーでは、/var/lib/git にはSELinuxのgit_sys_content_t タイプが、/var/www/git にはSELinuxのgit_content_t タイプが定義されています。, apache httpd から smart http 経由でgitリポジトリにアクセスする際は、gitリポジトリへの読み書き、および各リポジトリディレクトリのhooksディレクトリにあるスクリプトの実行が必要です。そこで、SELinuxポリシーの設定を変更します。, Redmine 4.1からは、画像データをクリップボードにコピーした状態でWiki編集領域にペースト操作をすると、添付ファイルに画像ファイルが自動で追加され、Wiki編集領域には画像ファイルの表示記法(!でファイル名を挟んだもの)が挿入されます。, 旧Redmineで使用していた Gitmike テーマが、sidebar hideプラグインと干渉しているので、別なテーマを探します。, CentOS 8(Red Hat Enterprise 8)では、OS提供パッケージからImageMagickが削除されています。ImageMagickを入れない状態では、thumbnailマクロが機能しない等の制約があります。EPELリポジトリからImageMagickが提供されているので、制約が受け入れられない場合(例えば本サイト。thumbnailを使いまくっています)、EPELからImageMagickをインストールします。, なお、Ruby gemモジュールを入れるときに、--withoutオプションでrmagickを除外していましたが、最近のRedmineはrmagickを使わずmini_magickを使っているのでbundleの入れ直し等は不要でした。, + default-character-set = utf8mb4 wiki macros of redmine to display lists of issues. 今日使える明日のRedmine「RedMica 1.1.0」リリース. - }, - root :to => 'welcome#index', :as => 'home', + root :to => 'wiki#show', :project_id => 'swe', :as => 'home', https://centosfaq.org/centos/yum-dnf-possible-confusion-centos-8/, http://unicorn.bogomips.org/Unicorn/Configurator.html, http://unicorn.bogomips.org/examples/unicorn.conf.rb, https://github.com/torutk/redmine_glossary, https://torutk.hatenablog.jp/entry/20130701/p1, https://github.com/two-pack/redmine_xls_export, /var/lib/redmine-4.1-stable/config/database.yml, サンプルにはproduction以外にdevelopment、testの設定がありますが、通常productionのみ使用するので設定はproductionだけ記述します。, database項はMariaDB上でRedmineのテーブルを収容するデータベース名を指定します。, username項はMariaDBのデータベースに接続するMariaDBのユーザー名を指定します。MariaDBのユーザーは後の手順で作成します。, password項はusernameで指定したMariaDBのユーザーのパスワードを指定します。, encoding項はMariaDBで使用する文字エンコーディングを指定します。通常utf8mb4です。, RedmineからMariaDBへは同じマシン上でUNIXソケットを使って接続するのでホスト名はlocalhostとしています。, WITH GRANT OPTIONを指定するとそのユーザーが持つ権限範囲以内の権限を他のユーザーに付与できます。, 注記)bundlerでRedmine固有ディレクトリ(--path vendor/bundler)にRubyモジュールをインストールしたので、railsコマンドを実行する際はbundle exec rails xxx のようにbundle execをつけて実行する必要があります。, デーモンプロセスとして起動した場合、シグナルINT(強制終了)またはQUIT(グレースフル停止)をマスタープロセスに送ります。, シグナルWINCH: ワーカープロセスをグレースフルに停止しますが自らは終了しません, UNIXドメインソケットはUnicornプロセスとNginxプロセスの間で読み書きする特殊ファイルです。Systemd 環境および SELinux 有効下では、/tmp や Unicornディレクトリ配下に置くことが難しいので、/var/run以下に置きます。/var/run 直下にファイルを作成するにはroot権限が必要なため、Unicorn起動時にroot権限で/var/run/unicornディレクトリを作成し、その後に Unicorn が/var/run/unicorn/unicorn.sockを設ける手順を踏みます。, backlogは、workerが作業中でもコネクションのリクエストを受理して待機しておくことができる個数で、デフォルトは1024です。例えば1件平均30msで捌く処理に対して1000個バックログによる待ちがあると、新たにリクエストした処理は結果が返るまで30秒間待たされることになります。それだったらコネクションを受け付けずにエラーにした方がよいということがあります。参考までに自宅で運用しているRedmineのログからCompleted行にある処理時間の平均は約100msでした。, tcp_nopushは、TCP_CORK(Linux)を制御します。デフォルトはfalseです。trueにすると、TCPフレームの断片が小出しに送られることを抑止するので、リモートにあるNginxのタスクを早めに起こさずにすませます。, /usr/lib/systemd/system/redmine-unicorn.service, Common Name(サーバードメイン名)は、次の手順でSANを指定することで無視されるので未入力, /etc/nginx/nginx.conf から、server {...} の記述を削除, 設定ファイル(リポジトリのconfディレクトリ以下)に手を入れていたら、上述dumpではバックアップされないので手動でコピーしておきます。.

名古屋 クロスバイク 中古 6, まつ毛 カール 生まれつき 4, Ethnic Neighborhoods 意味 5, 美容鍼 電気 効果 6, 土地 家屋 調査士 民法 対策 4, Amazon 再配達 不在票なし 9, ロットリング 300 分解 4, 姫路 喪服 レンタル 4, ヲタ恋 新刊 9巻 4, 乃木坂 46show Dailymotion 5, ポケモンgo キラフレンド ならない 27, Win Xp ライセンス認証回避 4, Ae86 ラジエーター 流用 10, ポケ森 ハッピーホームアカデミー タクミの挑戦状 6, 歴史 年号 一覧 13, 250cc 単気筒 二気筒 5, Portal2 Coop アートセラピー 44, ダホン ルート 評価 10, 潜在意識 現実の彼 いらない 48, マリオカート ラウンジ Mmr 27, トレーラー 点検整備記録簿 ダウンロード 5, 大 引 仕様 24, 鬼滅 の刃 情報 5, 私 から告白 した 方がいい 4, Once Time 意味 12, Googleドキュメント ラベル 印刷 5, Hdmi 2系統 モニタ 8, Xperia 5 画面サイズ 変更 7, Vab ミッション 異音 25,

TAGS