■環境 【背景】 業務でRedmineを構築してプラグインの作成まで触ったので、それを自分の端末でも構築してみようといったのが経緯です。 業務ではプロキシーをかませていたのですが、この手順では一般回線で構築していったのでその記述は省いています。 【構築環境】 ※ VMware Workstation 15 Player で構築しましたが、オンプレでの作業と変わりはないと考えています。 [OS] CentOS Linux release 7.7.1908 (Core) [Redmine構築環境(Redmine→管理→情報から引用)] Environment: Redmine version 4.2.1.stable.21047 Ruby version 2.5.9-p229 (2021-04-05) [x86_64-linux] Rails version 5.2.6 Environment production Database adapter PostgreSQL Mailer queue ActiveJob::QueueAdapters::AsyncAdapter Mailer delivery smtp SCM: Subversion 1.7.14 Git 1.8.3.1 Filesystem Redmine plugins: no plugin installed
■手順
### CentOSの設定
##### SELinuxの無効
vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
##### 再起動
reboot
##### SELINUXの確認
getenforce
→ Disabled
##### firewalldでHTTPを許可
●httpの追加
firewall-cmd --zone=public --add-service=http --permanent
→ success
●firewallの再読み込み(追加の反映)
firewall-cmd --reload
→ success
●firewallの設定確認
firewall-cmd --zone=public --list-services
→ dhcpv6-client http ssh
### 必要なパッケージのインストール
##### パッケージのインストール
●開発ツールのインストール
yum -y groupinstall "Development Tools"
●ヘッダファイル等のインストール
yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
●PostgreSQLとヘッダファイルのインストール
yum -y install postgresql-server postgresql-devel
●Apacheとヘッダファイルのインストール
yum -y install httpd httpd-devel
●ImageMagickとヘッダファイル、日本語フォントのインストール
yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts
### Rubyのインストール
●rootがソフトウェアをインストールするのでそのソースの保管場所へ移動
cd /usr/local/src
●Rubyのソースコードをダウンロード
curl -O https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.9.tar.gz
●Rubyのインストール
tar xvf ruby-2.5.9.tar.gz
cd ruby-2.5.9
./configure --disable-install-doc
make
make install
●Rubyのバージョン確認
cd ..
ruby -v
### bundlerのインストール
●Rybyのパッケージ管理ツールをインストール
gem install bundler --no-rdoc --no-ri
### PostgreSQLの設定
●データベースクラスタの新規作成
postgresql-setup initdb
→ Initializing database ... OK
●RedmineがPostgreSQLに接続するための設定
vi /var/lib/pgsql/data/pg_hba.conf
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
host redmine redmine 127.0.0.1/32 md5
host redmine redmine ::1/128 md5
PostgreSQLの開始と自動起動設定
systemctl start postgresql.service
systemctl enable postgresql.service
→Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.
●PostgreSQLのディレクトリに移動
cd /var/lib/pgsql
●PostgreSQLのRedmineユーザーの作成
sudo -u postgres createuser -P redmine
→新しいロールのためのパスワード:**********{任意のパスワード}
もう一度入力してください:**********{任意のパスワード}
●Redmine用のデータベースの作成
sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O {任意のDB名} -T template0 redmine※ TODO質問する
##### Rednineのインストール
●Redmineのダウンロード(証明書の期限が切れている場合、一時的に承認をするため"t"を押下する)
svn co https://svn.redmine.org/redmine/branches/4.2-stable /var/lib/redmine
→'https://svn.redmine.org:443' のサーバ証明書の認証中にエラーが発生しました:
- 証明書の期限が切れています。
- 証明書に未知のエラーが起きました。
証明書情報:
- ホスト名: svn.redmine.org
- 有効範囲: Wed, 08 Jan 2020 00:00:00 GMT から Sat, 08 Jan 2022 23:59:59 GMT まで
- 発行者: Gandi, Paris, Paris, FR
- フィンガープリント: 43:82:9e:5d:66:7e:a1:75:c5:ed:66:9a:bf:33:f3:59:6a:e5:ac:93
拒否しますか (R)、一時的に承認しますか (t)? t
●データベースへ接続するための設定ファイルの作成
cp /var/lib/redmine/config/database.yml.example /var/lib/redmine/config/database.yml
vi /var/lib/redmine/config/database.yml
# PostgreSQL configuration example
production:
adapter: postgresql
database: redmine
host: localhost
username:**********{任意のユーザ名}
password: "**********{任意のパスワード}"
encoding: utf8
【ここ以外はすべてコメントアウトする】
●設定ファイル config/configuration.yml の作成
cp /var/lib/redmine/config/configuration.yml.example /var/lib/redmine/config/configuration.yml
vi /var/lib/redmine/config/configuration.yml
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "localhost"
port: 25
domain: "example.com"
rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
●Redmineのディレクトリへ移動
cd /var/lib/redmine
●gemパッケージのインストール
bundle install --without development test --path vendor/bundle
##### Redmineの初期設定と初期データ登録
●セッション改ざん防止用秘密鍵作成
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
##### Passengerのインストール
●Phusion Passengerをインストール
gem install passenger -v 5.1.12 --no-rdoc --no-ri
●PassengerのApache用モジュールのインストール
passenger-install-apache2-module --auto --languages ruby
●Apache用設定内容の確認(結果を控えておく)
passenger-install-apache2-module --snippet
(サンプル開始)
LoadModule passenger_module /usr/local/lib/ruby/gems/2.5.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/lib/ruby/gems/2.5.0/gems/passenger-5.1.12
PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>
(サンプル終わり)
##### Apacheの設定
●/etc/httpd/conf.d/redmine.conf を作成
vi /etc/httpd/conf.d/redmine.conf
(以下を書く)
# Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。
# Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。
<Directory "/var/lib/redmine/public">
Require all granted
</Directory>
# Passengerの基本設定。
# passenger-install-apache2-module --snippet で表示された設定を記述。
# 環境によって設定値が異なるため以下の5行はそのまま転記せず、必ず
# passenger-install-apache2-module --snippet で表示されたものを使用すること。
#
##### 控えておいた5行をここに書く #####
# 必要に応じて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"
(書くの終わり)
●Apacheの起動の設定
systemctl start httpd.service
●Apacheの自動起動の設定
systemctl enable httpd.service
##### Apache上のPassengerでRedmineを実行するための設定
●権限の変更
chown -R apache:apache /var/lib/redmine
●DocumentRootの変更
vi /etc/httpd/conf/httpd.conf
→DocumentRoot "/var/lib/redmine/public"
●Apacheの再起動
service httpd configtest
systemctl restart httpd.service