5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CentOS7でRedmine構築

Last updated at Posted at 2023-03-02

はじめに

みなさんは何でタスク管理をしていますか?
私は下記の条件をもとにRedmineを選びました。

  1. 無料で使える
  2. 自分好みにカスタマイズができる
  3. プラグインが充実している

そこでまずは、自分のローカル環境にRedmineを構築し、
使い続けて良さそうであれば外部サーバ上に構築しようと考えました。

今回の記事ではローカル環境での使用を想定しているため、
httpsで接続できるようにするところまでは記載していません。
どこかのタイミングでhttpsで接続する場合の構築手順も書くと思います。。

対象読者

  • Linuxを直で触りたい人
  • Redmineを触りたい人

Redmineとは

Redmineについては、この記事が参考になりました!
入門 — Redmine Slides

環境

項目 バージョン
Redmine Redmine4.2
OS CentOS 7.8
データベース MySQL 8.0.25
webサーバ Apache/2.4.6
Ruby ruby 2.4.6

手順

できるだけパッケージ管理ツール(yum等)を使ってソフトを管理したいため、
ソースコードをダウンロードしてビルドする手順は避けています。
そのため最新バージョンを使っていないソフトもあります。

1. SELinux 無効化

下記の設定ファイルを開き、SELINUX=disabledに変更します。

$ sudo vi /etc/sysconfig/selinux 

※セキュリティ的にはSELinuxの無効化は避けたいですが、ローカル環境のため一旦は簡単なやり方で構築します。調べたところSELinuxを有効化した状態でも構築できるので時間のある人はぜひ構築してみてください!

2. Ruby, Passengerのビルドに必要なパッケージのインストール

$ sudo yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel

3. MySQLのインストール

 $ sudo yum install mysql mysql-devel

  ※ MySQL の構築手順は省きます。

4. Apacheとヘッダファイルのインストール

$ sudo yum install httpd httpd-devel

5. ImageMagickとヘッダファイル・日本語フォントのインストール

$ sudo yum install ImageMagick ImageMagick-devel ipa-pgothic-fonts

6. Rubyのインストール

$ sudo yum  install centos-release-scl-rh centos-release-scl
$ sudo yum --enablerepo=centos-sclo-rh  install rh-ruby24 rh-ruby24-ruby-devel

7. インストールしたRubyの環境変数の設定

以下の設定はコンソールからの実行時に既存のRubyではなく、今回インストールしたRubyを使用するようにしています。

# cat << 'EOF' | sudo tee /etc/profile.d/rh-ruby.sh
#!/bin/bash
source scl_source enable rh-ruby24
EOF

8. 共有ライブラリにパス設定

以下のファイルにライブラリパスを設定します。

$ sudo vi /etc/ld.so.conf
====
/opt/rh/rh-ruby24/root/usr/lib64

9. bundlerのインストール

$ sudo gem install bundler

※IPv6を利用してのインストールは失敗するため、使用するネットワークを確認してください。

参考サイト:
【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

14. gemパッケージのインストール

$ cd /var/lib/redmine
$ bundle install --without development test --path vendor/bundle

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用モジュールのインストール

opensslとの共存はできないため、インストール済みの場合は削除してからモジュールのインストールを行います。

($ yum remove openssl openssl-devel)
$ passenger-install-apache2-module --auto --languages ruby

20. Apache用設定内容確認

次の21.Apacheの設定で使用するための設定を出力します。

$ passenger-install-apache2-module --snippet

21. Apacheの設定

以下の内容で、/etc/httpd/conf.d/redmine.confを作成します。
#で記載のコメントの部分は省略可。

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

# 下記の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
# <IfModule mod_passenger.c>
# PassengerRoot /opt/rh/rh-ruby24/root/usr/local/share/gems/gems/passenger-5.1.12
#  PassengerDefaultRuby /opt/rh/rh-ruby24/root/usr/bin/ruby
# </IfModule>

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
<Location /redmine>
  PassengerBaseURI /redmine
  PassengerAppRoot /var/lib/redmine
</Location>

その後、下記のコマンドでApacheを再起動します。

$ sudo systemctl restart httpd

22. Apache上でPassengerを動作させるための設定

Redmineのディレクトリに権限を付与します。

$ sudo chown -R apache:apache /var/lib/redmine

また、RedmineのURL設定を行い、設定を反映させます。

$ vi /etc/httpd/conf.d/redmine.conf
==========
Alias /redmine /var/lib/redmine/public
<Location /redmine>
  PassengerBaseURI /redmine
  PassengerAppRoot /var/lib/redmine
</Location>
==========

$ sudo service httpd configtest
$ sudo systemctl restart httpd

23. Redmineログイン

ブラウザのURLに「(RedmineをインストールしたIPアドレスまたはホスト名)/redmine」を入力し、アクセスします。
Redmineのログイン画面が表示されたら、環境構築完了!! お疲れさまでした!!

さいごに

ここまで長い道のりだったと思います。私は下記の記事を参考に構築しましたが、
RedmineやRubyのバージョンの違いに苦しみました。。。エラーが山盛りでましたね。
この記事もいつかは古くなりコピペでは構築できないことも出てくるのでしょう。

最後に記載すべきではないかもしれませんが、Dockerを使った方が楽です。
私は現在Dockerを利用してRedmineを使っています。。。(ここまで付き合ってくれた方は申し訳ないです。)
もしかしたら何かしらの制約でDockerは使えないけどRedmineは使いたいよーっという人には需要があるかもしれないですね。
Dockerを利用した構築方法もどこかで記事にしたいと思います。

参考サイト

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?