Bitnami Testlink の バージョンアップ について
僕はPMでもありテスターです。会社でTestlinkは僕のPJだけですが、
僕が採用してお客様に納品成果物としています。
2014年より採用して5年経過。定期的(1、2年毎)にバージョンアップしています。
phpベースでデザインもいまいちですが、僕的には慣れもありますし、愛着もあります。
但し、元の開発者(だぶんインドの人)が後継者を募集している所をみたりすると、
メジャーVerupはほど遠いかも。でもバージョンアップしていってますね。
以下はバージョンアップメモです。(1.9.16→1.9.19(2年経過してゆるやかなVerUp。。))
環境はWindows7(もうじきサポート終わりますね)windows10でも大丈夫だと思います。
【①】bitnamiにアクセス
https://bitnami.com/
カタログからwindows版のTestlinkをダウンロードする。
【②】インストール
1)旧サービス停止
C:¥BitNami¥testlink-1.x.xx¥manager-windows.exe (旧ver)を起動して全てのサービスを停止する。
2)インストーラ起動
ダウンロードしたexeを起動する。
以下は留意事項
・言語を「English」でインストール。
・管理者のユーザとパスワードは控える。
・ホート番号を設定
僕の会社の環境ではredmineと共存しているので以下とする。
apache : 8080
ssl : 2443
MySQL : 3356
3)確認
インストール終了後、アクセス できることを確認する。
http://127.0.0.1:8080/testlink/login.php
【③】データ移行
1)バックアップしたDBのVerが同じであれば、通常のリカバリーで良いですが、
スキーマが違うと怒られます。
Bitnamiでない、本家のサイトではスキーマコンバートのスクリプトが用意されています(Readmeに記載)
Bitnamiではうまくいきません。(Readmeに記載無)
以下の手順で移行します。
C:¥BitNami¥testlink-1.x.xx¥manager-windows.exe (新Ver)で
phpmyadmin を起動して、テーブル内容を控えます。(ハードコピーとか)
その後、すべてのサービスを停止します。
2)C:¥BitNami¥testlink-1.x.xx¥manager-windows.exe (旧ver)を起動し、
全てのサービスを立ち上げます。
phpmyadmin を起動して、テーブル内容を控えます。(ハードコピーとか)
3)同件数以外のものをphpmyadminからデータのみエクスポートします。
※新しくできたテーブルはありますが、無視します。
今までのVerUpの経験上問題名無と思っています。
あまり古いVerからのVerupだとテーブルのカラムが追加されたりしていると思いますので、
エクスポートデータを加工する必要があるかも。。。(過去に苦労した経験あったかも。。覚えてない。)
古いですが 以下@bamchohさんの記事でテーブル構成がある程度わかります。
https://qiita.com/bamchoh/items/aeee48b2fff08f752d31
4)C:¥BitNami¥testlink-1.x.xx¥manager-windows.exe (旧ver)を起動し、
サービスをすべて停止します。
5)C:¥BitNami¥testlink-1.x.xx¥manager-windows.exe (新Ver)を起動し、
サービスをすべて起動します。
6)phpmyadmin を起動して、エクスポートしたデータをインポートします。
【④】確認
http://127.0.0.1:8080/testlink/login.php
にて 過去のテスト結果がちゃんと移行されているか確認する。
【⑤】メール設定省略
いちいちメールを飛ばすのは、ナンセンスと僕は思っており、以下を設定する。
config.inc.php の 編集
C:¥BitNami¥testlink-1.X.XX¥testlink¥htdocs
以下記述変更
1)警告もみ消し
$tlCfg->config_check_warning_mode = ‘SCREEN’;
↓
$tlCfg->config_check_warning_mode = ‘SILENT’;
2)メール設定無
$g_smtp_host = ''; # SMTP server MUST BE configured
↓
g_smtp_host = '[smtp_host_not_configured]'; # SMTP server MUST BE configured
$g_mail_priority = 5;
↓
$g_mail_priority = 0;
【⑥】会社名を表紙タイトルとする設定
config.inc.php の 編集
C:¥BitNami¥testlink-1.X.XX¥testlink¥htdocs
以下記述変更
$tlCfg->document_generatr->company_name = ' TestLink Community [configure $tlCfg->document_generator->company_name]';
↓
$tlCfg->document_generator->company_name = ' xxxxxx(会社名) Co.,Ltd.':
$tlCfg->document_generator->company_copyright = ' 20xx ficopy; TestLink Community';
↓
$tlCfg->document_generator->company_copyright = ' ';
【⑦】タイムゾーン設定
php.ini の 編集
C:¥BitNami¥testlink-1.x.xx¥php
[Date]
; Defines the default timezone used by the date functions
; http://php. net/date. timezone
date, timezone = " America/Los_Angeles"
↓
date, timezone = "Asia/Tokyo"
【⑧】アップロードファイルのコピー
以下 旧verから新Verにコピー
C¥BitNami¥testlink-1.x.xx¥apps¥teslnk¥htdocs¥upload_area
【⑨】旧Verのアンインストール
新Ver運用で問題なければ旧Verのアンインストール
■通常運用 バックアップ、リカバリー■
通常運用では以下バックアップ、何かあった時に再インストールしてリカバリー
MysqlのVerが同じことが前提
バッチファイルとか作成して運用
■バックアップコマンドサンプル
【DB】
C¥BitNami¥testlink-1.x.xx¥mysql¥bin¥mysqldump --user=root --password=XXXXXXXX --port=3356 bitnami_testlink > e:¥backup¥testlink_mysql.dmp
【関連ファイル】
xcopy C:¥BitNami¥testlink-X.X.X¥apps¥testlink¥htdocs¥upload_area e:¥backup¥testlinkfiles¥ /D /S /E /H /C /Y /R >> e:¥backup¥Testlink_backup.log
■リカバリコマンドサンプル
C:¥BitNami¥testlink-X.X.X¥mysql¥bin¥mysql --user=root --password=XXXXXXXX --port=3356 bitnami_testlink < e:¥backup¥testlink_mysql.dmp
関連ファイルは旧Verフォルダからコピペしても良いし、バックアップからコピーしても良いです。
■■MySqlチューニング■■
旧Ver1.9.16より遅くなった感じがする。
以下でチューニングを試みました。 幾分早くなった感じ。
以下を設定しています。あくまで導入環境でチューニングして下さい。
■Testlink Mysql設定
C:¥BitNami¥testlink-X.X.X¥mysql¥my.ini
僕の環境では以下を追加しています。
innodb_buffer_pool_size=3G
read_buffer_size=256K
sort_buffer_size=256K
innodb_file_per_table=ON
■設定説明
innodb_buffer_pool_size
InnoDBのバッファプールサイズ指定。物理メモリの7-8割程度を割り当てる。
sort_buffer_size
ソート処理に利用するバッファ。
read_buffer_size
全件スキャンをするときに利用するバッファ。
innodb_file_per_table=ON
InnoDBの場合、データファイル、ログファイルがストレージ上に作成される。
データファイルの管理方法には2通りあります。「共有領域」で管理する方法と、「テーブル個別領域」で管理する方法がある。
共有領域
全テーブルを一括で管理する領域。1つのテーブルの1レコードの変更でも、領域全体に更新がかかる。
テーブル個別領域
テーブルを1つずつ個別に管理する領域。更新対象のテーブルの領域にのみ、更新がかかる。
以上