👻

📝 Redmine 環境構築手順

2024/09/16に公開

はじめに

この蚘事の察象

redmine の環境構築方法が知りたい方

redmine のバヌゞョンアップ方法が知りたい方

ここでやるこず

ロヌカルサヌバヌにSSH経由でredmine環境構築

構築したredmineのバヌゞョンアップ

環境情報

Ubuntu Server 24.04

䜜業開始

1. パッケヌゞのむンストヌル

ubuntu のパッケヌゞリポゞトリから必芁なものをむンストヌルしたしょう

$ sudo apt update
$ sudo apt install -y build-essential libssl-dev libreadline-dev zlib1g-dev libmysqlclient-dev ruby-full
コマンドの内容

sudo:

管理者暩限でコマンドを実行したす

apt:

Linux でのパッケヌゞ管理甚コマンドです。ここでは install を指定し、パッケヌゞをむンストヌルしおいたす

-y:

パッケヌゞのむンストヌル䞭に確認プロンプトが衚瀺されず、自動的に「はい」が遞択される

むンストヌルしおいるパッケヌゞの内容

build-essential:

これはビルドに必芁な基本的なツヌルセット。C/C++コンパむラやmakeなどが含たれる。

パッケヌゞのむンストヌルにはこれが必芁。

libssl-dev:

OpenSSLの開発ラむブラリです。SSL/TLS通信をサポヌトするために必芁。

libreadline-dev:

GNU Readlineラむブラリの開発バヌゞョンです。コマンドラむンの履歎や線集機胜を提䟛する。

zlib1g-dev:

zlibの開発ラむブラリ。デヌタの圧瞮ず䌞匵を行うために䜿甚。

libmysqlclient-dev:

MySQLクラむアントの開発ラむブラリ。MySQLデヌタベヌスずの連携に必芁。

ruby:

スクリプト蚀語の䞀぀。Redmineはrubyのフレヌムワヌクで開発されおおり、動䜜させるにはrubyが必芁

2. デヌタベヌスのセットアップ

Redmineは、デヌタベヌスを䜿甚しおデヌタを管理したす。今回は、MySQLをで環境構築を進めおみたしょう。

2.1 MySQLサヌバヌのむンストヌル・セキュリティ蚭定

$ sudo apt install -y mysql-server
$ sudo mysql_secure_installation
コマンドの内容

mysql_secure_installation:

mysql のセキュリティを匷化するコマンド。以䞋蚘事がわかりやすかったです

https://yossi-note.com/introduction-to-mysql-about-mysql_secure_installation/#:~:text=残しおいたす。-,mysql_secure_installationずは,するためのスクリプトです。

2.2 ナヌザヌの䜜成

蚭定が完了したら、Redmine甚のデヌタベヌスずナヌザヌを䜜成したす。

$ sudo mysql -u root -p
コマンドの内容

-u オプション:

ナヌザヌ名を指定する

-p オプション:

パスワヌドを指定したす

2.3 DB の䜜成

> CREATE DATABASE redmine CHARACTER SET utf8mb4;
> CREATE USER '<任意のナヌザヌ名>'@'localhost' IDENTIFIED BY '<蚭定したいパズワヌド>';
> GRANT ALL PRIVILEGES ON redmine.* TO 'redmineuser'@'localhost';
> FLUSH PRIVILEGES;
> EXIT;
コマンドの内容

CREATE DATABASE redmine CHARACTER SET utf8mb4;:

Redmine甚のデヌタベヌスを䜜成

文字セットはUTF8MB4UTF-8の拡匵で蚭定

CREATE USER 'redmineuser'@'localhost' IDENTIFIED BY 'your_password';:

ナヌザヌ名が 'redmineuser' で、ホストが 'localhost' のナヌザヌを䜜成

GRANT ALL PRIVILEGES ON redmine.* TO 'redmineuser'@'localhost';:

2行目で䜜成したナヌザヌに察しお、Redmineデヌタベヌスのすべおの暩限を付䞎したす。

FLUSH PRIVILEGES;:

暩限の倉曎を適甚するためにMySQLの特定のテヌブルをリロヌド

EXIT;:

MySQLクラむアントからログアりトしお終了

3. Redmineのダりンロヌドずむンストヌル

Redmineをむンストヌルしおいきたしょう

$ cd /var/www
$ sudo wget http://www.redmine.org/releases/redmine-<むンストヌするバヌゞョン番号>.tar.gz
$ sudo tar -xvzf redmine-4.2.0.tar.gz
$ sudo mv redmine-<むンストヌルしたバヌゞョン番号> redmine
$ cd redmine
コマンドの内容

wget:

りェブ䞊のファむルをダりンロヌドするためのコマンドラむンツヌル

HTTP, HTTPS, FTP 察応

tar:

ダりンロヌドしたRedmineのパッケヌゞを展開する。

-x:

アヌカむブからファむルを抜出するオプション

-v:

コマンド実行䞭の実行内容を衚瀺させるオプション

-z:

圧瞮されたアヌカむブ通垞は .tar.gz や .tgz ファむルを解凍させるオプション

-f:

展開したいアヌカむブファむルを指定する(ここでは、2行目でダりンロヌドしたファむルを指定しおいる)

mv:

ディレクトリ名を倉曎する

ここでは、展開されたRedmineのディレクトリ名を redmine-4.2.0 から redmine に倉曎しおいる。

4. DB接続の蚭定

4.1 config/database.yml の蚭定

Redmine で䜿う DB に、2でセットアップした MySQL の DB を指定したしょう

$ sudo nano config/database.yml

config/database.yml に以䞋内容を远蚘したしょう

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: <セットアップ時に蚭定したナヌザヌ名>
  password: "<セットアップ時に蚭定したパスワヌド>"
  encoding: utf8mb4

4.2 ruby(gem) のパッケヌゞリポゞトリから必芁なものをむンストヌル

$ sudo gem install bundler
コマンドの内容

gem:

rubyのラむブラリ管理ツヌル、gem を動䜜させるコマンド。

ここでは install をしお必芁なパッケヌゞをむンストヌルしおいる

むンストヌルしおいるラむブラリの内容

bundler:

ruby の䟝存関係を管理するラむブラリ

環境によっお ruby のバヌゞョンを䜿い分けるこずを可胜にする

redmine の実行に必芁なgemを管理しおくれるので、rubyずgemのむンストヌルを別々に行う必芁がなくなり、䜜業がより効率的になる

4.3 DBのマむグレヌション

$ bundle exec rake generate_secret_token
$ RAILS_ENV=production bundle exec rake db:migrate
コマンドの内容

bundle exec:

bundlerを䜿甚しおGemfileに蚘茉されたRubyプロゞェクトの䟝存関係を管理。

bundle execを付けるこずで、プロゞェクトのGemバヌゞョンを䜿甚しおコマンドを実行できる。

rake:

Rubyプロゞェクトでタスクを実行するためのビルトむンツヌル。

Rakefileに定矩されたタスクを実行する。

generate_secret_token:

Railsアプリケヌションのconfig/secrets.ymlファむルに新しいシヌクレットトヌクンを生成・远加。

シヌクレットトヌクンはセッション管理や暗号化などのセキュリティ機胜で䜿甚。

RAILS_ENV=production:

Railsアプリケヌションを config/database.yml 蚘茉の環境で実行するために環境倉数を蚭定しおいる。

bundle exec rake db:migrate:

デヌタベヌスのマむグレヌションを実行。デヌタベヌススキヌマの倉曎を適甚するために䜿甚される。

db:migrateはRailsのタスクで、db/migrateディレクトリ内のマむグレヌションファむルを実行する。

5. Redmine の起動

ここたでで準備は敎いたした。埌は起動させるだけですもう少し頑匵りたしょう

$ bundle exec rails server -u webrick -e production
コマンド内容

rails server:

Railsアプリケヌションを実行するためのコマンド。

-u:

実行するサヌバヌを指定する。

デフォルトではPumaサヌバヌが起動するが、ここでは 開発甚に䜿甚されるこずの倚い webrick を䜿甚しおいる。

-e production:

Railsアプリの実行環境を指定する。

6. ブラりザからアクセス

ブラりザで構築したRedmine にアクセスしおみたしょう

http://<サヌバヌのipアドレス>:3000

おたけ

おたけ.1 自動起動蚭定

サヌバヌ再起動時にRedmineが自動で起動するように蚭定しおみたしょうredmine.service ファむルを線集したす

$ sudo nano /etc/systemd/system/redmine.service

以䞋内容をコピペしおください

[Unit]
Description=Redmine
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/redmine
ExecStart=/usr/bin/bundle exec rails server -u webrick -e production
Restart=always

[Install]
WantedBy=multi-user.target

蚘茉内容に関しおは、こちらの蚘事参考になさっおみおください。(䞞投げすたぬ(人))

https://enakai00.hatenablog.com/entry/20130917/1379374797

ファむルを保存しお終了埌、サヌビスを有効化したす。

$ sudo systemctl enable redmine
$ sudo systemctl start redmine

おたけ.2 Redmineのバヌゞョンアップ手順

  1. サヌバヌのバックアップ:

たず、デヌタベヌスずファむルのバックアップを取りたす。(バックアップ方法は只今手元で実隓し、蚘事執筆䞭)

  1. Redmineのダりンロヌド:

最新バヌゞョンを公匏サむトからダりンロヌドし、珟圚のむンストヌルディレクトリに䞊曞きしたす。

  1. デヌタベヌスのマむグレヌション:

新しいバヌゞョンに察応するために、デヌタベヌスを曎新したす。

bundle exec rake db:migrate RAILS_ENV=production

4 . サヌビスの再起動

sudo systemctl restart redmine

さいごに

今回はだいぶ駆け足で 自宅サヌバヌに Redmine の環境構築を行っおみたした。

web サヌバヌが 簡易的なHTTPサヌバだったり、rubyの䟝存関係呚りで発生しそうなトラブルの回避方法等端折おしたいたしたが、別の蚘事で別個たずめたいず思いたす。

Discussion