# Redmine
### Redmineとは
ここに概要のスライドがある。[[http://slides.redmine.jp/slides/beginner/|入門 — Redmine Slides]]
### 参考サイト
主にこのサイトの順番で環境構築を行った。
参考サイト [[https://blog.redmine.jp/articles/3_4/install/centos/]]
### 自環境
^ ソフトウェア ^ バージョン ^
| Redmine | Redmine4.2 |
| OS | CentOS 7.8 |
| データベース | MySQL 8.0.25 |
| webサーバ | Apache/2.4.6 |
| Ruby | ruby 2.4.6 |
### 運用後
- [[.Redmine:運用上の注意|運用上の注意]]
- [[.Redmine:セキュリティ対策|セキュリティ対策]]
- [[.Redmine:運用中の変更|運用中の変更]]
### 手順
以下の手順で行ったが、サイトの手順通りに関しては詳細を省く
##### 1. SELinux 無効化
下記の設定ファイルを開き、*SELINUX=disabled* に変更する
```
$ vi /etc/sysconfig/selinux
```
##### 2. Ruby, Passengerのビルドに必要なパッケージのインストール
```
$ yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel
```
##### 3. MySQLのインストール
```
$ yum install mysql mysql-devel
```
※ MySQL の構築手順は省く
##### 4. Apacheとヘッダファイルのインストール
```
$ yum install httpd httpd-devel
```
##### 5. ImageMagickとヘッダファイル・日本語フォントのインストール
```
$ yum install ImageMagick ImageMagick-devel ipa-pgothic-fonts
```
##### 6. Rubyのインストール
```
$ yum install centos-release-scl-rh centos-release-scl
```
```
$ yum --enablerepo=centos-sclo-rh install rh-ruby24 rh-ruby24-ruby-devel
```
参考サイト:[[https://oku.edu.mie-u.ac.jp/~okumura/misc/170925.html]]
##### 7. インストールしたRubyの環境変数の設定
以下の手順でコンソールから行う際に既存のrubyではなく、今回インストールしたRubyを使用するように設定する
```
# cat << 'EOF' | sudo tee /etc/profile.d/rh-ruby.sh
#!/bin/bash
source scl_source enable rh-ruby24
EOF
```
参考サイト:[[https://www.greptips.com/posts/1288/]]
##### 8. 共有ライブラリにパス設定
以下のファイルにライブラリパスを設定
```
$ vi /etc/ld.so.conf
====
/opt/rh/rh-ruby24/root/usr/lib64
```
参考サイト:[[http://www.8wave.net/ldconfig.html]]
##### 9. bundlerのインストール
```
$ gem install bundler
```
※IPv6を利用してのインストールは失敗する。
参考サイト:
[[https://prograshi.com/framework/rails/rails-gem-timeout-error/|【Rails】gem updateやgem installコマンドでtimed outやCould not find a valid gemが出たときの対処法]]
##### 10. Redmine用のデータベース作成
以下のコマンドでmysqlにアクセス後、テーブル作成のSQLを発行
アクセスするユーザはテーブル作成の権限があるユーザであること
```
mysql -u [ユーザ名] -h [ホスト名(localhost)] -p
> create database redminedb
```
##### 11. Redmineのインストール
```
$ svn co https://svn.redmine.org/redmine/branches/4.2-stable /var/lib/redmine
```
##### 12. Redmine使用時のデータベースへの接続設定
以下の内容でRedmineのインストールディレクトリ **///var/lib/redmine//** 以下に、**//config/database.yml//** を作成する。
```
production:
adapter: mysql2
database: redminedb
host: localhost
username: <ユーザ名>
password: "<パスワード>"
encoding: utf8
```
##### 13. Redmine設定ファイルの作成
Redmineからメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルを作成する。
以下の内容で、**// /var/lib/redmine/config/configuration.yml //** ファイルを作成する。
** TODO **
(現状、この設定ファイルは作成していない)
##### 14. gemパッケージのインストール
```
$ cd /var/lib/redmine
$ bundle install --without development test --path vendor/bundle
```
色々エラーがあったので、詳細は次のリンクで→[[環境構築:Redmine:gemインストール補足|gemインストール補足]]
参考サイト:gemとは[[https://techplay.jp/column/529]]
##### 15. セッション改ざん防止用秘密鍵の作成
```
$ bundle exec rake generate_secret_token
```
##### 16. データベースのテーブル作成
** database.yml ** で指定したデータベースにテーブルを作成する。
```
$ RAILS_ENV=production bundle exec rake db:migrate
```
##### 17. デフォルトデータの登録
```
$ RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
```
##### 18. Passengerのインストール
```
$ gem install passenger -v 5.1.12 --no-rdoc --no-ri
```
##### 19. PassengerのApache用モジュールのインストール
```
$ passenger-install-apache2-module --auto --languages ruby
```
→エラーが発生した。(詳細は[[環境構築:Redmine:Apacheモジュールのインストール|Apacheモジュールのインストール]])
下記のコマンドを実行後、再度上記のモジュールのインストールコマンドで解決した。
```
$ yum remove openssl openssl-devel
```
##### 20. Apache用設定内容確認
次の21.Apacheの設定で使用する。
```
$ passenger-install-apache2-module --snippet
```
##### 21. Apacheの設定
以下の内容で、 **// /etc/httpd/conf.d/redmine.conf //** を作成する。
```
# Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。
# Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。
Require all granted
# Passengerの基本設定。
# passenger-install-apache2-module --snippet で表示された設定を記述。
# 環境によって設定値が異なるため以下の5行はそのまま転記せず、必ず
# passenger-install-apache2-module --snippet で表示されたものを使用すること。
#
LoadModule passenger_module /opt/rh/rh-ruby24/root/usr/local/share/gems/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
PassengerRoot /opt/rh/rh-ruby24/root/usr/local/share/gems/gems/passenger-5.1.12
PassengerDefaultRuby /opt/rh/rh-ruby24/root/usr/bin/ruby
# 必要に応じてPassengerのチューニングのための設定を追加(任意)。
# 詳しくはPhusion Passenger users guide(https://www.phusionpassenger.com/library/config/apache/reference/)参照。
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 864000
PassengerStatThrottleRate 10
Header always unset "X-Powered-By"
Header always unset "X-Runtime"
Alias /redmine /var/lib/redmine/public
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
```
その後、下記のコマンドでApacheを再起動する。
```
$ systemctl restart httpd
```
##### 22. Apache上でPassengerを動作させるための設定
権限の付与
```
$ chown -R apache:apache /var/lib/redmine
```
RedmineのURL設定
```
$ vi /etc/httpd/conf.d/redmine.conf
==========
Alias /redmine /var/lib/redmine/public
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
==========
$ service httpd configtest
$ systemctl restart httpd
```
##### 23. Redmineログイン
ブラウザのURLに「(RedmineをインストールしたIPアドレスまたはホスト名)/redmine」を入力し、アクセスする。
正しく設定されていれば、環境構築完了
##### 24. 初期設定
Redmine.jpのサイトを参考:[[https://redmine.jp/tech_note/first-step/admin/]]
### バックアップ
参考サイト:https://redmine.jp/faq/system_management/backup/
##### バックアップ
```
$ mysqldump -u <ユーザ> -p<パスワード> > <出力先ファイル名>
```
##### リストア
```
$ mysql -u <ユーザ> -p<パスワード> < <ダンプデータファイル名>
```