RockyLinux8.7にRedmine4.2.9をインストールする

【PR】
※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

手順についてはこちらを参考にしております。

SELinuxをdisable

#vim /etc/selinux/config

#SELINUX=enforcing
SELINUX=disabled

epelをdnfのレポジトリに加えておく

#dnf install epel-release

事前に必要なモジュールをインストール

#dnf groupinstall "Development Tools"
#dnf install openssl-devel readline-devel zlib-devel curl-devel libffi-devel subversion

Apacheのインストール

#dnf install httpd httpd-devel

rubyをデフォルトの2.5から2.7に切り替えてインストール

切り替えると関連モジュールもそのVerになるので便利。

#dnf module list ruby
Last metadata expiration check: 3:14:40 ago on Wed 07 Dec 2022 11:19:32 PM UTC.
Rocky Linux 8 - AppStream
Name  Stream   Profiles    Summary
ruby  2.5 [d]  common [d]  An interpreter of object-oriented scripting language
ruby  2.6      common [d]  An interpreter of object-oriented scripting language
ruby  2.7      common [d]  An interpreter of object-oriented scripting language
ruby  3.0      common [d]  An interpreter of object-oriented scripting language
ruby  3.1      common [d]  An interpreter of object-oriented scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

#dnf module -y reset ruby
#dnf module -y enable ruby:2.7
Last metadata expiration check: 3:16:39 ago on Wed 07 Dec 2022 11:19:32 PM UTC.
Dependencies resolved.
================================================================================
 Package           Architecture     Version             Repository         Size
================================================================================
Enabling module streams:
 ruby                               2.7

Transaction Summary
================================================================================

Complete!

# dnf module list ruby
Last metadata expiration check: 3:17:24 ago on Wed 07 Dec 2022 11:19:32 PM UTC.
Rocky Linux 8 - AppStream
Name  Stream   Profiles    Summary
ruby  2.5 [d]  common [d]  An interpreter of object-oriented scripting language
ruby  2.6      common [d]  An interpreter of object-oriented scripting language
ruby  2.7 [e]  common [d]  An interpreter of object-oriented scripting language
ruby  3.0      common [d]  An interpreter of object-oriented scripting language
ruby  3.1      common [d]  An interpreter of object-oriented scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

# dnf install ruby ruby-devel

bundlerのインストール

# gem install bundler --no-doc

postgresqlのインストール

# dnf module list postgresql
Last metadata expiration check: 3:19:50 ago on Wed 07 Dec 2022 11:19:32 PM UTC.
Rocky Linux 8 - AppStream
Name         Stream   Profiles             Summary
postgresql   9.6      client, server [d]   PostgreSQL server and client module
postgresql   10 [d]   client, server [d]   PostgreSQL server and client module
postgresql   12       client, server [d]   PostgreSQL server and client module
postgresql   13       client, server [d]   PostgreSQL server and client module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

こちらはデフォルトの10ままにしました。
# dnf install posgresql-server postgresql-devel
初期化
# postgresql-setup initdb
設定
# vim /var/lib/pgsql/data/pg_hba.conf

・
・
# configuration parameter, or via the -i or -h command line switches.
の↓に以下2行を追加 それぞれ、IPv4/v6のループバックアドレスとなります。
host redmine redmine 127.0.0.1/32 md5 
host redmine redmine ::1/128 md5 

ユーザーの作成
# sudo -u postgres createuser -P redmine

DBの作成とユーザーへの権限割り当て
# sudo -u postgres createdb -E UTF-8 -O redmine -T template0 redmine

Redmineのインストール

# cd /opt/
# wget https://www.redmine.org/releases/redmine-4.2.9.tar.gz
# tar zxvf redmine-4.2.9.tar.gz
# mv redmine-4.2.9 /var/lib/redmine
# cd /var/lib/redmine
上で作成したpostgresの接続情報を記載
# vi config/database.yml

production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "<dbpassword>"
encode: utf8

rubyの各種アプリをインストール

# cd /var/lib/redmine
# bundle install --without development test rmagick --path vendor/bundle
# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate
# RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
# gem install passenger -N
# passenger-install-apache2-module --auto --languages ruby


↑のコンパイルにはリソースと時間がかかる。メモリ不足により途中で It looks like something went wrong とか出て失敗する場合は 一時的に2Gのswapを作成してリトライ

#dd if=/dev/zero of=/var/tmp/swap.img bs=1M count=2048 
#chmod 600 /var/tmp/swap.img 
#mkswap /var/tmp/swap.img 
#swapon /var/tmp/swap.img 
#free

 

Apacheの設定

# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/lib/redmine/public"  

# passenger-install-apache2-module --snippet
# vim /etc/httpd/conf.d/redmine.conf
---

<VirtualHost *:80>
ServerName ServerName
DocumentRoot "/var/lib/redmine/public"
</VirtualHost>

<directory "/var/lib/redmine/public">
Require all granted
</directory>

#digest認証させる
<Location />
AuthType Digest
AuthName "Redmine"
AuthUserFile /Path/To/.htdigest
Require valid-user
</Location>

##↓ passenger-install-apache2-moduleコマンドで出力された結果を書き込む ##
LoadModule passenger_module /usr/local/share/gems/gems/passenger-6.0.15/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/share/gems/gems/passenger-6.0.15
PassengerDefaultRuby /usr/bin/ruby
</IfModule>

---


# systemctl restart httpd
# systemctl enable httpd

http://IPアドレス

でRedmineのTOP画面が出ることを確認

壊れた時のリカバリも考えないとですが、コンパイルとかもあったし、Linuxの場合はWordPressみたいにさっとはいかないかもですね。。。

※追加したswapを再起動後も有効にする

↑で一時的に追加したswapはそのままでは再起動後には無くなってしまうのですが、redmineが通常稼働時でもメモリを結構使うからか、その後も「Out of Memory」エラーが出ることがあるます。そのためswapを再起動後も有効にするために/etc/fstabに以下のように書いて再起動します。間違うとヤバいので注意!!

#vi /etc/fstab
/var/tmp/swap.img   swap    swap    defaults        0 0

再起動後、有効になっているか確認
#swapon -s
Filename                                Type            Size    Used    Priority
/var/tmp/swap.img                           file            2097148 524     -2

※バックアップ

上の

/var/lib/pgsql/data/pg_hba.conf

内に追記したのが

host redmine redmine 127.0.0.1/32 md5 
host redmine redmine ::1/128 md5

だけであるためかPostgreSQLのpostgresユーザでのpg_dumpは実行時の認証すら通りませんでした。なのでredmine用に作成したPostgreSQLのredmineユーザーでコマンド内のユーザーを指定、実行するOSユーザー自体はdumpが吐かれる先に書き込み権限があれば、どのOSユーザーでも実行可。

#pg_dump -U redmine -h localhost -Fc --file=/path/to/backupdir/pg_dump_redmine.dmp redmine
パスワードを聞かれたら
PostgreSQLで作成したredmineユーザーのパスワードを入れる。
dmpファイル作成されることを確認する

 

 

Setup_Memo

Posted by admin