RockyLinux8.7にRedmine4.2.9をインストールする
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ファイル作成されることを確認する