以下では、既存の TestRail を新しいバージョンにアップグレードする方法について説明します。
アップグレードの流れ
8.0.1 へのアップグレード手順は、現在ご利用の TestRail のバージョンによって異なります。
TestRail 5.7 または 6.3 からのアップグレード
TestRail 7.0.2 にアップグレード後、TestRail 8.0.1 へアップグレードする必要があります。
-
- バックアップの取得
- インストール要件の確認
- ご利用環境が TestRail 7.0.2 のインストール要件を満たしていることを確認します。(PHP 7.0 のサポートが終了し、PHP 7.3 または 7.4 を利用する必要があります。)
- TestRail 7.0.2 にアップグレード
- インストールモジュールを配置後、WEB ブラウザから TestRail にアクセスして画面に従ってアップグレードの操作を行います。
- アップグレードは管理者ユーザーのみが実施できます。
詳細な手順は 7.0.2 用マニュアルの「TestRail のアップグレード」をご確認ください。
TestRail 7.0.1, 7.0.2 または 7.5.3 からのアップグレード
-
- バックアップの取得
- インストール要件の確認
- ご利用環境が TestRail 8.0.1 のインストール要件を満たしていることを確認します。
- PHP 7.x のサポートが終了し、PHP 8.1 を利用する必要があります。
- TestRail 7.5.3 以降は Apache Cassandra をインストールする必要があります。
- RabbitMQ は Webhook 機能を利用しない場合、インストール不要です。
- ご利用環境が TestRail 8.0.1 のインストール要件を満たしていることを確認します。
- TestRail 8.0.1 にアップグレード
- インストールモジュールを配置後、WEB ブラウザから TestRail にアクセスして画面に従ってアップグレードの操作を行います。
- アップグレードは管理者ユーザーのみが実施できます。
- RabbitMQ は Webhook 機能を利用しない場合、設定は不要でスキップすることができます。また、アップグレード後、管理画面から有効化、RabbitMQ の設定を追加することも可能です。
- WEB ブラウザからのバージョンアップ完了後、DB マイグレーションスクリプトを実行する必要があります。
- マイグレーションスクリプトを実行しない場合、添付ファイル関連の操作ができません。
- インストールモジュールを配置後、WEB ブラウザから TestRail にアクセスして画面に従ってアップグレードの操作を行います。
詳細な手順は本ページ内の次項「バックアップ」以降をご確認ください。
バックアップ
新しいバージョンにアップグレードする前に、TestRail のファイルとデータベースのバックアップを作成することを強くお勧めします。アップグレードで問題が発生した場合、変更をロールバックして以前の (正常に動作する) バージョンに戻す唯一の方法はバックアップです。TestRail のファイルとデータベースのバックアップを定期的に作成し、新しいバージョンにアップグレードする前にも作成することをお勧めします。
要件
TestRailのアップグレードを行う前に、要件および OS 固有の手順 (Windows/Linux) を確認してください。PHPやSQLなどのTestRailが依存するソフトウェアは時間とともに変更されるため、TestRailをアップグレードする前に、これらの要件を確認することをお勧めします。
依存関係のアップグレード
ここでは、TestRai 8.0.1 のインストール要件に合わせた依存関係のアップグレード手順を説明しています。
PHP 8.1
TestRail 8.0.1 には PHP 8.1 が必要です。(PHP 8.0 もサポートしていますが PHP 8.1 を推奨します。)
アップグレードの最初の手順として PHP 8.1 をインストールします。
次のコマンドを実行します。
$ sudo apt-get install php8.1 -y
使用する PHP のバージョン (ここでは 8.1) を選択します。
$ sudo update-alternatives --config php
Apache を再起動します。
$ sudo systemctl restart apache2
ionCube
最後に必要な PHP 拡張機能はフリーの ionCube PHP ローダーです。次のコマンドを実行して ionCube のディレクトリ (このマニュアルでは /opt/ioncube/ とします) に移動し、 Unix/Linux 用 ionCube ローダーをダウンロードおよびインストールします。
/opt/ioncube ディレクトリに移動します。
$ cd /opt/ioncube
ioncube ファイルをダウンロードします。
$ wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip
ioncube ファイルを展開します。
$ unzip ioncube_loaders_lin_x86-64.zip
(/apache および /cli の) php.ini ファイルを更新して新しい ioncube ローダーを設定します (通常は ‘/etc/php/8.1/cli/php.ini’および/etc/php/8.1/apache2/php.ini)。
zend_extension=/opt/ioncube/ioncube_loader_lin_8.1.so
wwwroot フォルダーに phpinfo.php ファイルがある場合、次の phpinfo.php ファイル作成手順を省略し、Web ブラウザーで ‘localhost/phpinfo.php’ に移動します。
phpinfo.php ファイルがない場合、 phpinfo() 診断プログラムの実行の手順に従って phpinfo.php ファイルを作成します。
Web ブラウザーで ‘localhost/phpinfo.php’ に移動し、PHP のバージョン情報を確認します。 次のように表示されるはずです (タイトルに適切なバージョンが表示されていることを確認します)。
Cassandra を含むすべての必須 PHP 拡張機能をリストしたphpinfo ページを参照してください。
正常に ionCube ローダー拡張がインストールされたことを確認するには、‘php -v’を実行します。
$ php -v
‘php -v を実行し、次のように出力されていれば、ionCube ローダー拡張モジュールは正常にインストールされています (ionCube PHP Loader という文字列を含む行に注目してください)。
PHP 8.1.15 (cli) (built: Feb 7 2023 11:31:13) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.15, Copyright (c) Zend Technologies with the ionCube PHP Loader v12.0.5, Copyright (c) 2002-2022, by ionCube Ltd. with Zend OPcache v8.1.15, Copyright (c), by Zend Technologies
PHP 拡張
Linux で MySQL Server データベースと組み合わせて TestRail を使用するには、次の PHP 拡張機能が必要です。
-
- cassandra 拡張機能 – NoSQL データベースにアクセスするのに必要です
- gd PHP 拡張機能 – グラフの生成に使用します
- mySQL 拡張機能 – データベースにアクセスするのに必要です
- pdo_mysql PHP 拡張機能 – データベースにアクセスするのに必要です
- fileinfo PHP 拡張機能 – ファイル タイプおよびエンコーディングの判断に使用します
- imagick PHP 拡張機能 – 画像の処理に使用します
- mbstring PHP 拡張機能 – Unicode 文字列の操作に使用します
- curl PHP 拡張機能 – アップデートの確認などに使用します
- openssl PHP 拡張機能 – SSL 接続の処理に使用します
通常、php 拡張機能のディレクトリは ‘/usr/lib/php/20210902/’ にあります。 このマニュアルでは、この場所に拡張機能のディレクトリがあると仮定します。
多くの拡張機能はデフォルトでインストールされていますが、mbstring、gd、imagick については手動でインストールする必要があります。
gd、fileinfo、mbstring、curl、openssl、imagick
これらをインストールするには、次のコマンドを実行します。
$ sudo apt-get install php8.1-imagick php8.1-mbstring php8.1-gd -y
php.ini ファイルに拡張機能を追加します。
extension=gd extension=fileinfo extension=mbstring extension=curl extension=openssl extension=imagick
Cassandra
「Cassandra NoSQL データベースのインストール (Unix / Linux)」の内容に合わせてCassandra をインストールします。
まとめ
インストールが完了したら、次のコマンドを実行して PHP 8.1 for Apache を有効化します。
$ sudo a2enmod php8.1
PHPの古いバージョンを無効化します。php7.4の場合は以下のコマンドです。
$ sudo a2dismod php7.4
Apache を再起動します。
$ sudo systemctl restart apache2
PHP、ionCube Loader、gd、mbstring、imagick、Cassandra をアップデートすると、php.iniファイルは次のようになります。
zend_extension ="/opt/ioncube/ioncube_loader_lin_8.1.so" extension=cassandra extension=gd extension=fileinfo extension=imagick extension=mbstring extension=curl extension=openssl extension=mysql
インストール ファイルの置き換え
TestRail をアップグレードするには、TestRail のファイルを Web サーバーにアップロードして抽出し、既存のファイルを新しいバージョンのファイルに置き換える必要があります。
-
- バックアップを取得
- TestRail インストールディレクトリ内のファイルを削除
- TestRail 8.0.1 のモジュールを展開後、TestRail インストールディレクトリに配置
- 必要なファイル、ディレクトリをバックアップから復元
- config.php ファイル:必須
- バックアップから config.php を取得して、インストールディレクトリに再配置してください。
- logs, audit, reports, attachments ディレクトリ:必要に応じて
- これらのディレクトリが TestRail インストールディレクトリ内に配置されている場合はバックアップからコピーして再配置が必要です。
- config.php ファイル:必須
- phantomjs の権限変更
- $ sudo chmod 755 /var/www/html/testrail/bin/phantomjs*
-
TestRail ディレクトリの所有者を変更
- $ sudo chown -R www-data:www-data /var/www/html/testrail
Web サーバーの設定によっては、Web サーバーがアクティブな間はファイルが上書きできない場合があります。その場合、TestRail のインストールファイルを置き換える前に Web サーバーを停止する必要があります。この問題は、主に Windows/IIS システムで発生する可能性があります。アップグレードで問題が起きた場合は、Web サーバーを停止してからファイルをもう一度上書きしてください。
ファイルを置き換えたら、インスタンスのアップグレードは完了しています。 Web ブラウザーでインスタンスにログインし (通常は ‘http://localhost/testrail/’ 等)、正常にアップグレードされていることを確認します。
データベースのアップグレード
毎回というわけではありませんが、TestRail のアップグレードに伴って TestRail データベースもアップグレードする必要がある場合があります。データベースのアップグレードが必要な場合、Web ブラウザーで TestRail にアクセスすると、自動的にデータベースのアップグレード画面にリダイレクトします。データベースをアップグレードできるのは管理者だけであり、他のすべてのユーザーは、データベースのアップグレードが完了するまで TestRail にアクセスできません。
マイグレーションスクリプトを実行
TestRail のアップデートが完了し、Cassandra 設定が保存されたら、移行ツールを開始できます。移行ツールは既存の添付ファイルを SQL データベースから Cassandra データベースに移行します。
MySQL データベース
$ cd migration_script (TestRail のディレクトリ内で実行) $ php ./TestRailSqlToCassandraMigration.php -d2 -m"driver=mysql;host=localhost;port=3306;database=testrail;user=testrail;password=123456789" -s"host=localhost;port=9042;keyspace=testrail;user=cassandra;password=cassandra" -i
このプロセスは数分かかる場合があります。移行が実行されている間、添付ファイルの代わりにアイコンしか表示されないことに注意してください。
スクリプトの実行に時間がかかる場合はトラブルシューティングの「マイグレーションスクリプト (TestRailSqlToCassandraMigration.php) の実行に時間がかかる」をご確認ください。
トラブルシューティング
マイグレーションスクリプト (TestRailSqlToCassandraMigration.php) の実行に時間がかかる
実行コマンドに ‘-a1000’ オプションを付与してください。
例:
php ./TestRailSqlToCassandraMigration.php -d2 -m"driver=mysql;host=localhost;port=3306;database=testrail;user=testrail;password=123456789" -s"host=localhost;port=9042;keyspace=testrail;user=cassandra;password=cassandra" -i -a1000
添付ファイル機能関連の古いファイルを削除
既存の TestRail を新しいファイルで上書きした場合、次の 2 つの古いファイルを削除する必要があります。
-
- app/models/attachment.php
- app/helpers/attachments.php
CSV/XML インポートでファイルをアップロードすると画面が固まる
CSV/XML インポート時に、ファイルをアップロードすると画面が固まり、操作ができなくなることがございます。
[管理] > [サイト設定] > [セキュリティ] タブの “CSP – TestRail にリモート アドレスへのアクセスを許可する” でチェックボックスを有効化して TestRail をインストールしたサーバーのホスト情報を追加します。
レポートを表示しようとすると画面が固まる
レポート作成後、レポートを表示しようとすると画面が固まり、操作ができなくなることがございます。
[管理] > [サイト設定] > [セキュリティ] タブの “CSP – TestRail にリモート アドレスへのアクセスを許可する” でチェックボックスを有効化して TestRail をインストールしたサーバーのホスト情報を追加します
MAX_CHART_ROWS エラー
ダッシュボード画面を表示した際に、以下のエラーが表示されることがあります。
これを修正するには、インストールディレクトリの config.php ファイルに次の定数を追加します。
/* |-------------------------------------------------------------------- | OPTIMIZATIONS |-------------------------------------------------------------------- | | You can choose whether to optimize the delivery of style sheet and | javascript files and the handling of language files. The following | optimization settings are available: | | DEPLOY_OPTIMIZE_LANG: If enabled, TestRail uses a single combined | language file named 'all_lang' instead of | multiple language files. | | DEPLOY_OPTIMIZE_CSS: If enabled, a single combined style sheet | is served to the clients. | | DEPLOY_OPTIMIZE_JS: If enabled, a single combined javascript | file is served to the clients. */ define('DEPLOY_OPTIMIZE_LANG', true); define('DEPLOY_OPTIMIZE_CSS', true); define('DEPLOY_OPTIMIZE_JS', true); define('MAX_CHART_ROWS', 150000);