# yum update
Rubyのインストール
RedmineはRubyで作成されてますのでインストールが必要です
※こちらの記事を参考にRubyをインストールしました。
記事の最後にあるbundlerも必要になるのでインストールを忘れずに!
CentOS7にRubyをインストール – Qiitaいつも忘れがちなので、自分用のメモも兼ねてインストール方法を投稿します。 前準備 CentOS7はMinimal ISOでインストール済みであること 必要なパッケージのインストール $ sudo yum -y instal…
svn インストール
SVNがインストールされているか確認する
- インストールの確認
# yum list installed | grep subversion
- インストールされていなければインストールする
# yum install subversion
- バージョン確認
# svn --version
いよいよredmineのインストール
「公式ドキュメントを見てインストール」
インストール場所の作成
# mkdir /var/lib/redmine
# cd /var/lib/redmine
ダウンロード
# svn co https://svn.redmine.org/redmine/branches/4.1-stable redmine-4.1
(R)eject or accept (t)emporarily? ←「t」を選択(証明書を一時的に許可)
ダウンロードできたか確認
# ls
redmine-4.1
MySQLにredmineのテーブルを準備
MySQLにログインをしてデータベースとユーザーを作成する。
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password'; ←パスワードを「Celalink2017!」
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
設定ファイルの作成
作業ディレクトリの変更
# cd redmine-4.1
サンプルファイルをコピーして設定ファイルを作成する
# cp config/database.yml.example config/database.yml
設定ファイルの編集
# vi config/database.yml
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "my_password"
usernameとpasswordを変更
セッションストアシークレットの生成
railsがセッションデータを格納するCookieをエンコードするために使用するランダムキーを生成し、改ざんを防止します。
# yum install mysql-devel
# bundle install
# bundle exec rake generate_secret_token
$ bundle install Fetching gem metadata from https://rubygems.org/.......... Using rake 12.0.0 Using concurrent-ruby 1.0.5 Using i18n 0.8.6 Using minitest 5.10.3
MariaDB-devel MariaDB-sharedが必要です
$ sudo yum install -y MariaDB-devel MariaDB-shared $ bundle update Fetching gem metadata from https://rubygems.org/.......... ... Fetching mysql2 0.4.10 Installing mysql2 0.4.10 ... Fetching turbolinks 5.0.1 Installing turbolinks 5.0.1 Fetching uglifier 4.0.2 Installing uglifier 4.0.2 Fetching web-console 3.5.1 Installing web-console 3.5.1 Bundle complete! 44 Gemfile dependencies, 124 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed.
初期設定
# RAILS_ENV=production bundle exec rake db:migrate
DBにデフォルトデータを登録する
# RAILS_ENV=production bundle exec rake redmine:load_default_data
// 言語の選択 「ja」を入力する
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
ポート開放
# firewall-cmd --add-port=3000/tcp --zone=public
サーバー起動
# bundle exec rails server webrick -e production
※Ctrl + cで停止
※ポートは後で閉じるのでこのまま進んでおkです。
「http://ドメイン:3000」で画面が開けばOK!
ログインできない???
adminユーザーのパスワードをリセットする
admin以外のユーザーにシステム管理者権限を与えていない場合、adminユーザーのパスワードを紛失するとRedmineの管理が行えなくなってしまいます。このような場合、adminユーザーのパスワードを強制的に変更することができます。
手順
Redmineがインストールされているサーバでコマンドプロンプトを開き作業を行います。
1. Redmineのインストールディレクトリに移動
Redmineがインストールされているディレクトリに移動してください。
例:
cd /var/lib/redmine
2. Railsのコンソールを開く
以下のコマンドを実行してRailsのコンソールを開いてください。
bundle exec rails console production
3. adminユーザーに対応するオブジェクトを取得してパスワードを更新
>> User.find_by_login('admin').update!(password: '新パスワード')
4. Railsコンソールを終了
>> quit
作業は以上で完了です。adminユーザーは新しく設定したパスワードでログインできるようになります。
通常のパスワードリセット手順
前述の手順はRedmineにシステム管理者権限を持ったユーザーでログインできなくなった場合など非常時の手順です。
システム管理者権限を持ったユーザーでログインできる場合は、Redmineの「管理」→「ユーザー」開き各ユーザーの編集画面で新しいパスワードを設定できます。
Unicornのインストール
# vim Gemfile // gem “unicorn”を追加
# bundle update
動作確認
# bundle exec unicorn_rails -l 3000 -E production
※Ctrl + cで停止
※ここでもう一度画面が開くことを確認!
ポート閉じる
# firewall-cmd --reload
Service登録用のファイルを作成
# vi config/unicorn.rb
※コピペしてOKですがパスだけ適宜置き換えてください
# -*- coding: utf-8 -*-
# Unicorn設定ファイル
worker_processes 2
listen "/var/lib/redmine/redmine-4.1/tmp/sockets/redmine.sock", :backlog => 32
timeout 30
pid "/var/lib/redmine/redmine-4.1/tmp/pids/redmine.pid"
stderr_path '/var/lib/redmine/redmine-4.1/log/unicorn.stderr.log'
stdout_path '/var/lib/redmine/redmine-4.1/log/unicorn.stdout.log'
preload_app true
check_client_connection false
before_fork do |server, worker|
# Railsでpreload_appをtrueにしているときは強く推奨
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
# Railsでpreload_appをtrueにしているときは必須
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
begin
uid, gid = Process.euid, Process.egid
# user, group = "redmine", "redmine"
# ENV["HOME"] = "/home/redmine"
target_uid = Etc.getpwnam(user).uid
target_gid = Etc.getgrnam(group).gid
worker.tmp.chown(target_uid, target_gid)
if uid != target_uid or gid != target.gid
Process.initgroups(user, target_gid)
Process::GID.change_privilege(target_gid)
Process::UID.change_privilege(target_uid)
end
rescue
if RAILS_ENV = "development"
STDERR.puts "could not change user, oh well"
else
STDERR.puts "could not change user, oh well"
raise e
end
end
end
サービス起動用ファイル作成
# vi /usr/lib/systemd/system/redmine.service
※こちらもパスにご注意ください
[Unit]
Description=Redmine Unicorn Server
[Service]
WorkingDirectory=/var/lib/redmine/redmine-4.1/
Environment=RAILS_ENV=production
SyslogIdentifier=redmine
PIDFile=/var/lib/redmine/redmine-4.1/tmp/pids/unicorn.pid
# /usr/localのrbenvにパスを通す
ExecStart=/usr/local/rbenv/shims/bundle exec "unicorn_rails -c /var/lib/redmine/redmine-4.1/config/unicorn.rb -E production"
ExecStop=/usr/bin/kill -QUIT $MAINPID
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
// 起動確認
# systemctl start redmine
// 動作確認
# systemctl status redmine
// activeになっていることを確認
● redmine.service - Redmine Unicorn Server
Loaded: loaded (/usr/lib/systemd/system/redmine.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2020-06-16 10:31:16 JST; 11s ago
Main PID: 3700 (ruby)
CGroup: /system.slice/redmine.service
├─3700 unicorn_rails master -c /var/lib/redmine/redmine-4.1/config/unicorn.rb -E production
├─3733 unicorn_rails worker[0] -c /var/lib/redmine/redmine-4.1/config/unicorn.rb -E production
└─3734 unicorn_rails worker[1] -c /var/lib/redmine/redmine-4.1/config/unicorn.rb -E production
Jun 16 10:31:16 118-27-39-108 systemd[1]: Started Redmine Unicorn Server.
// 自動起動の設定
# systemctl enable redmine
最後に