ひじりんのひつまむしブログ

現役システムエンジニアのゲームやら映画やら技術やら・・

AlmaLinux 8にRedmineをインストール

 

RedMineとは

BTS(Bug Tracking System)の一つで、不具合や課題などを管理するツールです。

 

Ruby On Rails

RedMineは、Ruby On Railsで動作しますので、こちらをインストールします

 

hijirinhima.hatenablog.com

 

hijirinhima.hatenablog.com

 

ユーザを作成

RedMine用のユーザを作成します

#useradd redmine

apacheからも連携しますので、apacheグループに追加

#usermod -aG redmine apache

 

データベースを作成

今回は、PostgreSQLを利用します

 

hijirinhima.hatenablog.com

 

ユーザ(ロール)とデータベースを作成します

#psql -U postgres

>create role redmine with login password 'redmine';

>create database redmine;

>alter database redmine owner to redmine;

 

RedMineをインストール

2023/6/23時点での最新は、5.0.5です

#cd /home/redmine

#wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz

#tar xvf redmine-5.0.5.tar.gz

#cd redmine-5.0.5/config

#mv configuration.yml.example configuration.yml

#mv database.yml.example database.yml

#cd ../public/

#mv dispatch.fcgi.example dispatch.fcgi

#cd ../config/

#vi database.yml

MySQLの箇所をコメントアウト

#production:
#  adapter: mysql2
#  database: redmine
#  host: localhost
#  username: root
#  password: ""
#  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
#  encoding: utf8mb4

代わりに、PostgreSQLをコメント解除

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "redmine"

 

Bundlerをインストール

Bundlerとは、Rubyのライブラリの依存関係を含めたインストなどを実施できます

#gem install bundler

#bundle config set --local without 'development test'

#bundle install --path vendor/bundle

 

※2023-11-6 追記

AlmaLinux9 で、mysql2のインストに失敗する場合

#dnf --enablerepo=crb install mysql-devel

※2023-11-6 追記

 

データベース作成

#bundle exec rake generate_secret_token

#RAILS_ENV=production bundle exec rake db:migrate

#RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data

 

パーミッションの変更

#cd /home/redmine/redmine-5.0.5

#for i in tmp tmp/pdf public/plugin_assets; do [ -d $i ] || mkdir -p $i; done

#chown -R redmine:redmine files log tmp public/plugin_assets

#chmod -R 755 /home/redmine/redmine-5.0.5

 

ファイアーウォールの設定

インストールしていなければ、インストする

#dnf install firewalld

#systemctl start firewalld

#systemctl enable firewalld

ポート30000の開放

#firewall-cmd --add-port=3000/tcp --permanent

#firewall-cmd --reload


 ファイアーウォールは、クラウド業者のサービスで設定されている場合もありますので上記で、解放できない(アクセスできない)場合は、そちらも確認してみてください

 

Passengerのインストール

追加ライブラリが必要になる場合があるので、それをインストール

#dnf install gcc gcc-c++ libcurl-devel openssl-devel zlib-devel

#dnf install httpd-devel apr-devel apr-util-devel

Passengerとは、Ruby On Rails を動作させるサーバのようなものです

#gem install passenger

次に、apacheとの連携です

#passenger-install-apache2-module

そうすると、入力を求められる箇所がある

Press Enter to continue, or Ctrl-C to abort.

そのまま Enter

Which languages are you interested in?

言語はRubyのままので、そのままEnter

Detected 0 error(s), 3 warning(s).
Press ENTER to continue.

最後です

 

apacheのコンフィグを変更

#vi /etc/httpd/conf.modules.d/00-passenger.conf

このファイルの中に、先程のmodule作成中にあった記載を追加する

   LoadModule passenger_module /usr/local/share/gems/gems/passenger-6.0.18/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/local/share/gems/gems/passenger-6.0.18
     PassengerDefaultRuby /usr/bin/ruby
   </IfModule>

ファイルを保存して、apacheを再起動

#systemctl restart httpd

 

ApacheからRedmineの連携

apacheのコンフィグを作成

#vi /etc/httpd/conf.d/redmine.conf

内容は、このような感じです

Listen 3000

LoadModule passenger_module /usr/local/share/gems/gems/passenger-6.0.18/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/share/gems/gems/passenger-6.0.18
PassengerDefaultRuby /usr/bin/ruby
</IfModule>

<VirtualHost *:3000>
    ServerName *****.com
    DocumentRoot /home/redmine/redmine-5.0.5/public/

    CustomLog logs/redmine_access.log combined
    ErrorLog logs/redmine_error_log
    LogLevel warn

    <Directory "/home/redmine/redmine-5.0.5/public/">
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
        AllowOverride all
    </Directory>
</VirtualHost>

 

 

403が出る場合

DocumentRootとなるディレクトリの権限もありますが

DocumentRootまでの各フォルダも実行権限が必要になります

今回の例なら

/home

/home/redadmin

/home/redadmin/redadmin-5.0.5

/home/redadmin/redadmin-5.0.5/public

も実行権限がないとだめです

 

アクセス

http://ドメイン:3000

で、下記画面がでればOKです

管理者は

admin

admin

がデフォルトですが、ログインすると、パスワードの変更が求められます

変更しておきましょう

AlmaLinuxのfirewalldがエラーとなる場合の対応法

 

エラー

firewall-cmdにてエラーとなる場合がある

#firewall-cmd --reload

Error: COMMAND_FAILED: 'python-nftables' failed: internal:0:0-0: Error: Could not process rule: Numerical result out of range


JSON blob:
{"nftables": [{"metainfo": {"json_schema_version": 1}}, {"add": {"chain": {"family": "inet", "table": "firewalld", "name": "filter_IN_policy_allow-host-ipv6"}}}]}

 

対応法

vi /etc/firewalld/firewalld.conf

このファイル内の

FirewallBackend=nftables

FirewallBackend=iptables

に変更

ruby/gemでupdate失敗する場合の対応法

 

gemとは

Rubyのライブラリを管理するツールです

 

最新に更新

#gem update

こちらは、ライブラリをアップデートします

gemコマンド自身をアップデートする場合は

#gem update --system

 

アップデートでエラー

--system でのアップデートでエラーとなる場合は

#ln -s /usr/local/share/gems/gems/rubygems-update-3.4.14/ /usr/share/gems/gems/rubygems-update-3.4.14

とシンボルリンクすることで解消

バージョンを調べるには

#ls -la /usr/local/share/gems/gems/

 

AlmaLinux 8にRuby On Railsをインストール

 

Rubyをインストール

 

hijirinhima.hatenablog.com

関連するライブラリをインストール

#dnf install  ruby-devel rpm-build make gcc gcc-c++ libxml2 libxml2-devel postgresql-devel zlib-devel libxslt-devel nodejs git yarn

 

Ruby On Rails をインストール

#gem install bundler

#gem install nokogiri -- --use-system-libraries

#gem install rails --version="~>7.0"

 

#2023-11-7 追記

yaml.h not found が発生した場合

#dnf --enablerepo=crb install libyaml-devel

#2023-11-7 追記

 

バージョンを確認

#rails -v

 

AlmaLinux 8にRubyをインストール

 

Rubyのバージョン確認

#dnf module list ruby

Last metadata expiration check: 2:19:42 ago on Thu Jun 22 15:33:59 2023.
AlmaLinux 8 - AppStream
Name  Stream   Profiles    Summary
ruby  2.5 [d]  common [d]  An interpreter of object-oriented scripting language
ruby  2.6      common [d]  An interpreter of object-oriented scripting language
ruby  2.7      common [d]  An interpreter of object-oriented scripting language
ruby  3.0      common [d]  An interpreter of object-oriented scripting language
ruby  3.1      common [d]  An interpreter of object-oriented scripting language

 

バージョンの更新

#dnf module enable ruby:3.1

 

インストール

#dnf install ruby

 

AlmaLinux 8に TestLink をインストール

テスト管理ツールは多々ありますが、TestLinkの利点は、テストでなくその根拠となる仕様書を登録できる点があります。通常

要求 → 要件

と、分析する訳ですが、同様に「品質」という言葉が出てきます

品質

とは、要件がどれくらい満たされているかの指標です

よって、要件 - テスト は親密に関連づけられている必要があります

PMBOK の世界では、トレーサビリティ と呼んでいます

 

まれに、「品質強化テスト」とよくわからないキーワードをいう技術者がいますが、

品質 = 要件がどれくらい満たされているか
ですから、「強化」というのはあり得ません。

それって、要件が満たされていない部分を補っているだけ、強化しているわけじゃないですね

品質80%が90%になっても、強化とはならないですし

品質120%というのは、要件のない要件?なんて無いですから、100%超えることもないです。

トレーサビリティがとれない要件とテストは、ありえないですし、

もし、そのような事が出てくるのなら、もともと100%でなく不足しているといえるからですね

  • 未知の既知
  • 未知の未知

という、リスクに関するキーワードもありますので、品質は100%になることはないものの限りなく100%に近づくことはできると思います

高品質=99.99999・・・%

負荷テストといったテストもありますが、トレーサビリティからいえば、非機能要件をテストしている過ぎません

 

と、考えた場合、テスト管理と要件管理は、同時にできることが良いです

そういう意味でも、TestLinkは優れているといえるでしょう

インターフェースが古く、使いづらいという声は聴きますが

テスト仕様書と要件定義書を分けて作成し、あとでトレーサビリティがとれず、最悪、品質漏れを「品質強化テスト」というステークホルダを欺くような工程を入れるよりは、十分にマシと言えますね

 

php インストール

TestLink(現時点で、最新 1.9.20) は php 7.4 以上です

こちらからダウンロードできます

https://sourceforge.net/projects/testlink/files
こちらでも取得可能

# wget -O testlink-1.9.20.tar.gz https://sourceforge.net/projects/testlink/files/TestLink%201.9/TestLink%201.9.20/testlink-1.9.20.tar.gz/download

 

PHP は、過去の記事を参照ください

hijirinhima.hatenablog.com

 

hijirinhima.hatenablog.com

データベースのインストール

TestLinkは、PostgreSQL/MySQL/SQLServer を対応しています

今回は、PostgreSQLを採用します

 

hijirinhima.hatenablog.com

php から PostgreSQLを利用できるようにライブラリも登録

#dnf install php-pgsql

 

ユーザ(ロール)とデータベースを作成する

#psql -U postgres

>create role testlink with login password 'testlink';

>create database testlink;

 

環境設定

必要なパスがあるので、作成する必要があります

#mkdir /var/testlink

#mkdir /var/testlink/logs

#chmod 666 /var/testlink/logs/

#mkdir /var/testlink/upload_area/

#chmod 666 /var/testlink/upload_area/

#chmod 666 /var/www/html/testlink/gui/templates_c/

 

max_execution_time

こちらは、PHPスクリプトのパーサの許容時間ですが、初期値は30秒になっています

TestLinkでは、120秒が推奨されていますので、こちらを変更します

/etc/php.ini

max_execution_time = 30

こちらを 120に変更する

max_execution_time = 120

その後、apache/php-fpmを再起動する

 

hijirinhima.hatenablog.com

セッションタイムアウト

TestLinkでは、60分に設定されているが、

php.ini では、24分になっており、TestLink側で警告になっています

ここは、TestLinkに合わせます

/etc/php.ini

session.gc_maxlifetime = 1440

TestLinkに合わせます

session.gc_maxlifetime = 3600

 

インストール途中、データベース情報をフォルダに更新するため

アクセス権限を付与

#chmod 777 -R /var/www/html/testlink/

 

必要なライブラリ

GD Graphics Libyrary

描画のためのライブラリです

 

hijirinhima.hatenablog.com

準備OK

これで、準備がおわりました

LDAPや他のデータベース以外は、OKになります

 

最後に

実行を押して、

Installation was successful!
You can now log in to Testlink.

の文字が表示されればOKです。

You can now log in to Testlink.

をクリックして、ログイン画面よりログインできます

user: admin

pass: admin

が初期設定ですので、変更しておきましょう

 

アップロードがエラーとなる場合

アップロードがエラーとなる場合、権限の可能性があります

/var/testlink/upload_area に書き込み権限+実行権限があるか確認してください

# chmod 777 /var/testlink/upload_area

 

PVアクセスランキング にほんブログ村