はじめに
みなさんは何でタスク管理をしていますか?
私は下記の条件をもとにRedmineを選びました。
- 無料で使える
- 自分好みにカスタマイズができる
- プラグインが充実している
そこでまずは、自分のローカル環境に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を利用した構築方法もどこかで記事にしたいと思います。