■環境 【背景】 業務で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