以前、自宅での作業管理のためにRedmine環境を構築したのですが、
突然HDDが壊れたため、再度Redmineを立ち上げました。
テレワークでの作業管理や課題管理などエクセルで管理するよりも、
Redmineで管理するとかなり楽になります。
ここでは、RedmineをUbuntuにインストールする手順を書いていきたいと思います。
使用環境は、Redmine4.2.4、Ubuntu20.04で、
Ubuntuでの作業場所は、/home/(ユーザー)ディレクトリ下で行います。
また、この手順で立ち上げた環境のUbuntu20.04を22.04にアップグレードしたところ、
Redmineが動作しなくなりました。
その原因と対処方法についても書いていきます。
1.Redmineをインストールするための前準備
Redmineをインストールする前準備として、ビルドツールとgitコマンドをインストールします。
$ sudo apt install -y build-essential git
また、Redmineを使用するためには、目次にもあるとおり、
さまざまなモジュールをインストールする必要があります。
これからインストールしていく各々のモジュールの簡単な説明を、下表にまとめました。
モジュール名 | 説明 |
---|---|
rbenv | Rubyのバージョンやモジュールの依存関係を管理 |
rbenv-build | Rubyをインストールためのrbenvのプラグイン |
Ruby | Redmineの動作に必要 |
SQlite3 | Redmineで使用するデータベース |
Rails | Webアプリケーションフレームワークで、Redmineの動作に必要 |
redmine | Redmine本体 |
Apache2 | Redmineのサイトを表示するためのWebサーバー |
Phusion Passenger | Apache2でRuby on Railsのアプリを動作させる。 |
2.rbenvとrbenv-buildのインストール
Rubyをインストールする準備として、rbenvとrbenv-buildをインストールします。
rbenvは、以下を実行します。
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
実行後、/home/(ユーザー)配下に.rbenvフォルダが生成され、rbenvがインストールされます。
そして、.rbenv/binを環境変数PATHに追加します。
追加の仕方は、/home/(ユーザー)/.bashrcファイルの最後に下記を追加します。
PATH=$PATH:/home/(ユーザー)/.rbenv/bin
次に下記を実行します。
rbenv init
実行後、.bashrcに
eval "$(rbenv init - bash)"
を追加するように出力されますので、.bashrcに追加します。
追加後、sourceコマンド実行もしくはターミナルを再起動します。
再起動後、.rbenv配下にshimsフォルダが追加されPATHにも追加されます。
次に、rbenv-buildをインストールします。
$ mkdir ~/.rbenv/plugins
$ git clonehttps://github.com/rbenv/ruby-build.git
~/.rbenv/plugins/ruby-build
ここでrbenv-doctorというチェックツールでチェックしてみます。
(下記のパスは、古いものですが、Ubuntu20.04で確認した手順として残しています。新しいパスは、その次に書いています。)
$ curl -fsSL https://gitbub.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor
| bash
これで、Rubyをインストールするコマンドの準備ができました。
上図の黄色字で「none」になっているところは、まだRubyがインストールされていない状態を示しています。
ここで、私が2024/03/09時点で、上記を確認したところ、
下記のように、mainがHEADに変更されていました。
$ curl -fsSL https://gitbub.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-doctor
| bash
上記は、curlコマンドで取得したrbenv-doctorをそのままbashで実行していますので、
パスが変更されると実行できなくなります。
パス変更があったり、無くなる可能性もありますので、
rbenv-doctorを自分のパソコンにファイル保存しておくと良いです。
保存のやり方は、下記のようにcurlコマンドの-o オプションを使用して、
ファイル名を指定するとローカルに保存することができます。
$ curl -fsSL https://gitbub.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor
-o rbenv-doctor
ここでは、保存するファイル名は、そのままの rbenv-doctor にしました。
そして、この rbenv-doctorファイルを下記で実行ファイルにします。
$ chmod 777 rbenv-doctor
rbenv-doctorの保存場所は、私の場合は、とりあえず「./rbenv/plugin/」に置きました。
どのフォルダでも実行したい場合は、パスを通してください。
3.Rubyのインストール
Rubyのインストールに必要な、下記モジュールをインストールします。
$ sudo apt install -y libssl-dev zlib1d-dev
下記を実行して、インストールするRubyのバージョンを確認します。
$ rbenv install -l
今回はRedmine4.2.4をインストールしますが、
このバージョンのRedmineが対応しているRubyのバージョンは、2系ですので、
このリストの中での最新の2.7.5をインストールします。
Rubyをインストールは、下記コマンドを実行します。
$ rbenv install 2.7.5
実行後、エラーが出ないことを確認します。
続いて、下記を実行して使用するRubyのバージョンを設定します。
$ rbenv gloval 2.7.5
そして設定されていることを下記で確認します。
$ rbenv version
と
$ ruby -v
を実行して、それぞれ下図のように結果が出力されることを確認します。
そして、rbenv-doctorで再度確認してみます。
(下記のパスは、古いものですが、Ubuntu20.04で確認した手順として残しています。新しいパスでの確認は、その次に書いています。)
前項で「none」になっていた箇所が、「1 versions」となり、Rubyをインストールできたことを確認できます。
パス変更後のrbenv-doctorを実行した結果は、下図のようになっています。
Checking RubyGems settingの結果が無くなったようです。
4.SQLite3のインストール
Redmineでは、データベースが必要になりますが、ここでは、SQLite3を使用します。
Redmineのデータベースとして、MySQLやPostgreSQLなどがありますが、
設定が簡単なので、SQLite3を使用することにします。
ただ、RedmineでSQLite3を使用することは、複数ユーザーのアクセスに向いていないそうなのですが、
使用者は私だけなので今のところは良しとします。
下記を実行してSQLite3をインストールします。
$ sudo apt install -y sqlite3 libsqlite3-dev
下記で、インストールしたSQLite3のバージョンを確認します。
$ sqlite3 --version
確認すると、3.31.1なのでちょっと古いですがこのままでいきます。
あとになってバージョンアップが必要ならその時にしようと思います。
5.Railsのインストール
Railsとは、Rubyプログラミング言語で書かれたWebアプリケーションフレームワークです。
そして、下記を実行しRailsのインストールをします。
$ gem install rails
インストール完了後、下記でRailsのバージョンを確認します。
$ rails --version
これで、Railsのインストールが完了です。
6.Redmineのインストールと設定と簡易確認
ここでのRedmineのインストール手順は、「Redmineのインストール - Redmineガイド」を参考にしています。
6.1.Redmineのインストール
まず、Redmineのモジュールを取得します。
下記を実行して、/home/(ユーザー)ディレクトリ下に取得します。
$ wget http://www.redmine.org/releases/redmine-4.2.4.tar.gz
私がインストールした時点では、4.2.4が最新でした。
取得できたら、下記を実行して、tar.gzファイルを展開します。
$ tar -xvzf redmine-4.2.4.tar.gz
展開場所は、様々で既にApache2がインストールされていれば/var/www/配下に、
もしくは/usr/local/srcに展開して/var/www/配下にシンボリックリンクを張ったりと、
システムとしてあるべき姿の場所に展開することが多いと思います。
しかし、今回は私一人しか使わないので、/home/(ユーザー)ディレクトリ下に展開することにします。
6.2.空のデータベースとユーザーの作成
Redmineで使用するデータベースが、MySQLやPostgreSQL、SQL Serverの場合は、ここで空のデータベースとユーザーの作成を行います。
今回は、SQLite3を使用しますので、このタイミングでは、何もしなくて良いです。
6.3.データベースに接続する設定
展開したredmineフォルダ配下のconfig/database.yml.exampleをコピーして、
config/database.ymlを作成します。そして、SQLite3を使用する設定に変更します。
下記は、左が作成したdatabase.ymlで右がdatabase.yml.exampleで、diffを取ったものです。
6,7行目で、production設定をmysqlからsqlite3に変更します。
記述のサンプルは、database.ymlの下の方に記載がありますので、それをそのまま使用しています。
developmentとtestをコメントにした理由は、 次項のコマンドで--withoutを使用して、
この2つを無視するようにして実行するのですが、 --withoutが効いていないのかわかりませんが、
有効になってしまってMySQLが無いというエラーになったからです。
エラーにならなければコメントにする必要はありません。
6.4.依存するソフトウェアのインストール
redmine4.2.4フォルダに移動します。
次にRubyGemの依存関係を管理するためにBundlerをまずインストールします。
$ gem install Bundler
そして、config/database.ymlに依存するモジュールをインストールします。
$ Bundle install --without development test rmagick
rmagickは、PDFとPNGのエクスポートのための画像を操作するために必要なのですが、
今回はインストールせずに進みたいと思います。
6.5.セッションストア秘密鍵の生成
セキュリティ上で必要となるので、下記を実行します。
$bundle exec rake generate_secret_token
実行後、config/initializersフォルダに、secret_token.rbファイルが生成されます。
6.6.データベースのテーブル等の作成
データベースのテーブル等を作成するために、下記を実行します。
RAILS_ENV=production bundle exec rake db:migrate
6.7.デフォルトデータの作成
デフォルトデータを作成するために、下記を実行します。
$ RAILS_ENV=production bundle exec rake redmine:road_default_data
途中で言語を選択する入力がありますので、jaと入力してエンターキーを押すと作成が完了します。
6.8.ファイルパーミッションの確認
Redmineを/home/(ユーザー)で、展開した場合は、ファイルパーミッションについて特に何かすることはありません。
6.9.インストールの確認
インストールの確認は、まず下記をredmineフォルダ配下で、実行してWebrickサーバーを起動します。
$ bundle exec rails server webrick -e production
Chromeなどのブラウザから、「http://(IPアドレス):3000
」でアクセスして、
Redmineのホーム画面が表示されることを確認します。
Webrickは開発時に使用するものであり、通常の運用には適していません。
なので個人で使用する場合でもWebrickは使用せずに、Apache2+Phusion Passengerでやりたいと思います。
7.Apache2のインストール
Apache2と次項以降に必要なモジュールをインストールします。
$ sudo apt install -y apache2 apache2-dev libarp1-dev libarputil1-dev libcurl4-openssl-dev
この時点で、「http://(IPアドレス)
」にアクセスするとApache2のデフォルトサイトが表示されます。
8.Phusion Passengerのインストール
Apache2でRuby on Railsのアプリを動作させるために、Phusion Passengerをインストールします。
gem install passenger
9.Apache2とPhusion Passengerの連携
Apache2にPhusion Passengerをインストールします。
$ passenger-install-apache2-modules
少し時間がかかりますが、インストールが完了すると、
以下の赤枠を、 Apache2の設定ファイルに追加するように指示がでます。
メモしておくか、もしくはこのターミナルをこの状態で置いておいて、
別の作業用ターミナルを開いて次項の作業を行います。
10.Apache2の設定
Apache2の設定ファイルを修正しますが、2種類のやり方があります。
・Apache2のデフォルトページをRedmineホームにしてアクセスする設定
・RedmineホームにURL名を付けてアクセスする設定
どちらでも構いませんので、それぞれの設定方法を説明します。
その前に、共通して行う設定があり、
それはApache2がredmineフォルダやpassengerなどのコマンドがある、
/home/(ユーザー)ディレクトリにアクセスできるようにする設定が必要になります。
その設定は、apache2.confを修正します。
左が修正後で、182~186行目が追加分です。
この設定をすることで、Apache2が/home/(ユーザー)ディレクトリにアクセスできるようになります。
10.1 Apache2のデフォルトページをRedmineホームにしてアクセスする設定
Apache2のデフォルトサイトの代わりに、 Redmineホームをデフォルトとして表示します。
やり方は、/etc/apache2/sites-available/000-default.confを修正します。
左側が修正後で、1~6行目は、9項でメモしておいたコードを追加して、
19行目で、redmineのホームディレクトリのパスを指定します。
修正が完了したら、Apache2を再起動します。
$ sudo systemctl reload apache2
再起動後、「http://(IPアドレス)
」にアクセスするとRedmineのホームが表示されます。
10.2 RedmineホームにURL名を付けてアクセスする設定
例えば、ブラウザから「http://redmine-aquarius/
」のようにアクセスして、Redmineホームを表示します。
まず、/etc/apache2/sites-available/に移動して000-default.confをコピーし、redmine.confを作成します。
$ sudo cp 000-default.conf redmine.conf
コピー後、redmine.confを修正します。
左側がredmine.confで1~5行目は、9項でメモしておいたコードを追加します。
17行目が、ブラウザからアクセスするためのサーバー名の設定です。
21行目が、redmineのホームディレクトリのパスを指定します。
修正後、このredmine.confをApache2に読み込ませるために、下記のコマンドを実行します。
$ sudo a2ensite redmine.conf
修正が完了したら、Apache2を再起動します。
$ sudo systemctl reload apache2
まだこの時点では、Windowsパソコンから指定した名前でアクセスすることができません。
Windowsパソコンからアクセスする場合には、
hostsファイルにRedmineが動作しているパソコンのIPアドレスとサイトアドレスを追加する必要があります。
場所は、C:\Windows\System32\drivers\etcで、hostsファイルを管理者権限で開きます。
下記の赤枠のように追加して保存します。
修正後、「http://redmine-aquarius/
」にアクセスすると、下図のようにRedmineのホームが表示されます。
11.Redmineの動作確認
Redmineのホームを表示後、右上にある赤枠のログインをクリックします。
ログインをクリックすると、IDとパスワード入力画面になります。
初回ログインは、ID: admin、パスワード: adminでログインします。
ログイン後、新パスワードに変更することになります。
Redmineにログイン後、まずプロジェクトを作成する必要があります。
左上赤枠の「プロジェクト」をクリック後、
プロジェクトタブ内にある右側赤枠の「新しいプロジェクト」をクリックすることで、
プロジェクトを作成することができます。
作成したプロジェクトをクリックすると、下図のように表示されます。
チケットタブをクリックして、右側赤枠の「新しいチケット」をクリックすることで、
チケットを作成することができます。
チケットのタイトルにTODOや課題、問題になっている事柄を記載することで作業管理しやすくなります。
12.Ubuntu22.04にアップグレードした際のRedmine不具合対応
Ubuntu20.04でRedmineを運用していましたが、Ubuntu22.04にアップグレードした際に、
Redmineのサイトが表示できなくなりました。
原因調査のために、使用しているモジュールが正常に動作しているかバージョン確認を行ったところ、
Railsコマンドのバージョン確認で、libcrypto.so.1.1ファイルが無いとエラーになりました。
この問題を解決した後、Redmineのサイトを開くと、
今度は、Phusion Passengerに問題があるとブラウザ上にエラーが表示されました。
これは、/var/loc/apache2/error.logファイルを見てみるとlibssl.so.1.1ファイルが無いというエラーでした。
このエラーを解決することで、Redmineが正常に動作するようになりました。
Redmineを表示できなくなった原因をまとめると、
Ubuntu20.04から22.04にアップグレードした際に、
libcrypto.so.1.1、libssl.so.1.1 の2ファイルが無くなったことにあります。
この原因を解決する方法は、この2ファイルを元に戻すことです。
私の場合、アップグレードする際に、
「使用されていないファイルを削除する」と選択してしまいましたので、
もうUbuntu22.04環境に存在していないかもと思っていましたが、
/(ルート)からfindコマンドで検索してみると、下図のように、/snap内にありました。
snapフォルダには、アップグレードする前のファイルが保存されており、
core18は、Ubuntu18、core20は、Ubuntu20のファイルになっています。
ここでは、以前使用していたUbuntu20.04のファイルがあるcore20フォルダを使用します。
また、core20フォルダ内には番号フォルダがあり、番号が大きく、日付が新しいフォルダを使用します。
私の場合は、先ほどの図から/snap/core20/2182/フォルダを使用して、
libcrypto.so.1.1ファイルとlibssl.so.1.1ファイルをUbuntu22.04環境に復活させます。
復活させる方法は、Ubuntu22.04環境の/usr/lib/x86_linux-gnuフォルダに、
この2ファイルを下記のようにコピーします。
$ sudo cp -p /snap/core20/2182/usr/lib/x86_64-linux-gnu/jlibcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/
$ sudo cp -p /snap/core20/2182/usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/
コピーは、cpコマンドの-pオプションで日付そのままの状態でコピーする方が良いです。
これで、Ubuntu20.04から使用していたRedmineがUbuntu22.04でも動作するようになります。
13.最後に
Redmineのインストールは、手順が多くなかなか大変ですが、作業管理だけでなく、
ブログ記事管理など様々な用途で役に立つと思いますので、是非トライしてみてください。
また、OSのメジャーアップデートを行う時は、既存のソフトウェアが動作しない場合がありますので、
古いファイルは残すようにした方が良いと思います。
<関連・おすすめ記事>
Linux勉強用の中古パソコンおすすめショップランキング - 水瓶座列車
プログラミングを独学で勉強するためのLinuxパソコン準備手順 - 水瓶座列車
Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5 - 水瓶座列車
RaspberryPi (ラズパイ)の購入時に最低限必要なものとおすすめセット - 水瓶座列車
画面分割できるパソコンディスプレイのおすすめランキングベスト5 - 水瓶座列車
無線で複数台接続できるトラックボールマウスのおすすめランキングベスト5 - 水瓶座列車