LoginSignup
6
10

More than 3 years have passed since last update.

macOS Sierra の docker で TestLink をインストールと設定する

Last updated at Posted at 2017-06-27

What’s New

最新版はこちら【2019年版】macOS 10.14 Mojaveの docker で TestLink をインストールと設定する

Preconditions

  • OS: macOS 10.14.6 Mojave
  • VM: docker desktop Community Version: 2.1.0.4(39773) Channel: stable

TL;DR

適当なディレクトリに docker-compose.yml をダウンロードして、カスタマイズしてから docker-comse up で起動。
公式ドキュメント:https://hub.docker.com/r/bitnami/testlink/
一つずつていねいな設定作業がオススメ(各種設定をミスると Apache が起動しないこと多し)。

1. TestLink をインストールする

インストール

$ mkdir $HOME/testlink
$ cd $HOME/testlink
$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-testlink/master/docker-compose.yml > docker-compose.yml

docker-compose.yml を編集する

$ vim $HOME/testlink/docker-compose.yml

編集内容は、
- http port を 80 -> 8080 へ変更する
- TestLink admin email を設定する
- smtp(gmail)を設定する
- 言語を日本語に設定する

docker-compose.yml
version: '2'

services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'mariadb_data:/bitnami/mariadb'
  testlink:
    image: 'bitnami/testlink:latest'
    labels:
      kompose.service.type: nodeport
    ports:
      - '8080:80'
      - '443:443'
    environment:
    - TESTLINK_EMAIL=mymailaddress@gmail.com
    - TESTLINK_LANGUAGE=ja_JP
    - SMTP_ENABLE=true
    - SMTP_HOST=smtp.gmail.com
    - SMTP_PORT=587
    - SMTP_USER=mymailaddress@gmail.com
    - SMTP_PASSWORD=password
    - SMTP_CONNECTION_MODE=tls
    volumes:
      - 'apache_data:/bitnami/apache'
      - 'testlink_data:/bitnami/testlink'
    depends_on:
      - mariadb

volumes:
  mariadb_data:
    driver: local
  apache_data:
    driver: local
  testlink_data:
    driver: local

TestLink コンテナの起動

$ cd $HOME/testlink
$ docker-compose up -d

TeskLink のフロントエンド
http://localhost:8080/login.php

TestLink の admin アカウント初期設定値は、

アカウント:user
パスワード:bitnami

TestLink コンテナの終了

$ cd $HOME/testlink
$ docker-compose stop

2. docker のコンテナやイメージの削除

dockerのコンテナ・イメージを謎のコマンド群で消すのもいいけどdocker-cleanコマンドもいいよ

以上

参考資料

1. TestLink のコンテナにログインする

docker ps で TestLink のコンテナIDを探す

 $ docker ps

TestLink のコンテナにログインする

 $ docker exec -it コンテナID /bin/bash
注: docker exec だと、/bin/bash プロセスを起動させて標準入出力を行う。仮にログインしたコンテナを exit しても、起動させた /bin/bash プロセスだけが終了して、コンテナは停止しない。類似コマンドの、docker attach は、ログインしたコンテナで exit するとコンテナが終了する

参考: Docker・コンテナの確認と接続(ps, attach, execコマンド)
参考: Dockerコンテナ内で操作 attachとexecの違い

ログインしたコンテナからログアウト(終了)する

$ exit

2. もしも手動で TestLink の基本設定をするならば……

TestLink のコンテナにログインする

 $ docker exec -it コンテナID /bin/bash

このコンテナに Vim をインストールする

$ apt-get update
$ apt-get install vim

custom_config.inc.php を Vim で開く

$ vim /bitnami/testlink/custom_config.inc.php

custom_config.inc.php に Gmail SMTP 設定ほかを記述する

<?php

//path設定
$tlCfg->log_path = '/opt/bitnami/testlink/logs/';
$g_repositoryPath = '/opt/bitnami/testlink/upload_area/';

//smtp設定
$g_smtp_host = 'smtp.gmail.com';
$g_tl_admin_email = 'mymailaddress@gmail.com';
$g_from_email = 'mymailaddress@gmail.com';
$g_return_path_email = 'mymailaddress@gmail.com';
$g_smtp_username = 'mymailaddress@gmail.com';
$g_smtp_password = 'password';
$g_smtp_port = '587';
$g_smtp_connection_mode = 'tls';

//デフォルト言語を日本語にする
$tlCfg->default_language = 'ja_JP';

//TestLinkセキュリティ上の弱点が存在する場合に警告する方法は、
//  * 'SCREEN':ログイン画面にメッセージを表示する(デフォルト)
//  * 'FILE':警告ファイルを作成、ログイン画面にメッセージを表示する。
//  * 'SILENT':警告ファイルを作成、ログイン画面にメッセージを表示しない。
$tlCfg->config_check_warning_mode = 'SCREEN';

//sessionInactivityTimeoutを延長する
$tlCfg->sessionInactivityTimeout = 86400;

//ユーザーによる新規アカウント登録を禁止する(管理者による新規アカウント登録に限定する)
$tlCfg->user_self_signup = FALSE;

// アップロードするファイルサイズ上限を拡大する
// ただし(多くの場合のPHPデフォルト値の)2MBを超える場合は、
// 同時に php.ini の upload_max_filesize の設定も変更する。
$tlCfg->import_max_size = '40000000'; // in bytes
$tlCfg->repository_max_filesize = 40; //MB

//レポートとメトリクスで表示される会社名を設定する
$tlCfg->document_generator->company_name = '自社名';
$tlCfg->document_generator->company_copyright = 'Copyright© ' . date('Y') . '自社名';
$tlCfg->document_generator->confidential_msg = '本資料は自社名の許可無く対外的に参照・配布しないようお願い申し上げます。';

//レポートで表示される TestLink ロゴを自社ロゴに変更する
$tlCfg->document_generator->company_logo = 'logo.png';
//ロゴマークの高さを指定する
$tlCfg->document_generator->company_logo_height = '50';

?>

注1: Google アカウントのセキュリティ設定で、安全性の低いアプリへのアクセスを有効にする。有効にしないと TestLink のメール送信が失敗するので注意する
参考:Google マイアカウント

注2: TestLink のログイン画面トップの警告は、各種設定をすれば消せる 
参考:TestLinkの警告にちゃんと対応する

3. タイムゾーンの修正をする

TeskLink は PHP のタイムゾーンを引用する仕様なので php.ini のデフォルトタイムゾーンを変更する

TestLink のコンテナにログインする

$ docker exec -it コンテナID /bin/bash

php.ini を探して Vim で編集する

$ php --ini
Configuration File (php.ini) Path: /opt/bitnami/php/lib
Loaded Configuration File:         /opt/bitnami/php/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
$ vim /opt/bitnami/php/lib/php.ini

php.ini の最終行付近にある date.timezone = "Asia/Tokyo" にする

; Local Variables:
; tab-width: 4
; End:
upload_max_filesize = 40M
post_max_size = 40M
extension_dir = /opt/bitnami/php/lib/php/extensions
;date.timezone = UTC
date.timezone = "Asia/Tokyo"
zend_extension = opcache.so
opcache.enable = 1
opcache.memory_consumption = 128
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
opcache.interned_strings_buffer = 8
opcache.fast_shutdown = 1

PHP のタイムゾーンが Asia/Tokyo になったことを確認する

$ php -i | grep timezone
Default timezone => Asia/Tokyo
date.timezone => Asia/Tokyo => Asia/Tokyo

編集した php.ini の設定を反映するために Apache を再起動する

$ /opt/bitnami/apache/bin/apachectl restart

4. TestLink > レポートメトリクス のレポートに会社のロゴマークを入れる

設定方法は2種類あるのでお好きな方で……

設定方法その1:ローカル環境から TestLink の指定ディレクトリにコピーする

$ $HOME/logo
$ ls
logo.png
$ docker cp ./ コンテナID:/opt/bitnami/testlink/gui/themes/default/images

設定方法その2:ウェブのロゴマークを TestLink の指定ディレクトリに wget する

TestLink のコンテナにログインする

 $ docker exec -it コンテナID /bin/bash

wget をインストールする

$ apt-get update
$ apt-get install wget

TestLink の指定ディレクトリにロゴマークを追加する

$ cd /opt/bitnami/testlink/gui/themes/default/images
$ wget http://hogehoge.co.jp/logo/logo.png

ロゴマークの準備ができたら custom_config.inc.php に以下の内容を追記する

//レポートで表示される TestLink ロゴを自社ロゴに変更する
$tlCfg->document_generator->company_logo = 'logo.png';

//ロゴマークの高さを指定する
$tlCfg->document_generator->company_logo_height = '50';

5. TestLink > レポートメトリクス > グラフ > グラフによるレポート の文字化けを解消する

TestLink のコンテナにログインする

 $ docker exec -it コンテナID /bin/bash

wget と unzip をインストールする

$ apt-get update
$ apt-get install wget
$ apt-get install unzip

システムフォントにIPAexフォントを追加する

$ cd /usr/share/fonts/truetype
$ wget http://dl.ipafont.ipa.go.jp/IPAexfont/IPAexfont00201.zip
$ unzip IPAexfont00201.zip
$ rm -fr IPAexfont00201.zip

fc-cache をインストールする

$ apt-get update
$ apt-get install fontconfig

システムフォントのキャッシュをクリアする

$ fc-cache -fv

custom_config.inc.php に以下の内容を追記する

//グラフのレポートのフォントとしてシステムフォントのIPAexゴシック体を利用する設定
$tlCfg->charts_font_path = "/usr/share/fonts/truetype/IPAexfont00201/ipaexg.ttf";

6. Bad Request 対策をする

スクリーンショット 2017-12-08 11.42.45.png

TeskLink のセキュリティ対策が厳しすぎて Bad Request エラーになる。クライアントからの HTTP リクエストのヘッダのサイズ制限を緩和する

TestLink のコンテナにログインする

$ docker exec -it コンテナID /bin/bash

httpd プロセスを確認する

$ ps aux | grep httpd

vim で httpd.conf を編集する

$ sudo vim /opt/bitnami/apache/conf/httpd.conf

httpd.conf の最終行に以下を追加する

LimitRequestFieldsize 1048576

編集した httpd.conf の設定を反映するために Apache を再起動する

$ /opt/bitnami/apache/bin/apachectl restart

7. Upload ファイルサイズを拡大する

TeskLink のテストケースなどをアップロードする場合に、ファイルサイズが大きすぎて読み込まないエラーの対策。custom_config.inc.php と php.ini の設定を変更する。

TestLink のコンテナにログインする

$ docker exec -it コンテナID /bin/bash

Vim で custom_config.inc.php を開く

$ vim /bitnami/testlink/custom_config.inc.php

custom_config.inc.php に以下の設定を記述する

<?php

// アップロードするファイルサイズ上限を拡大する
// ただし(多くの場合のPHPデフォルト値の)2MBを超える場合は、
// 同時に php.ini の upload_max_filesize の設定も変更する。
$tlCfg->import_max_size = '40000000'; // in bytes
$tlCfg->repository_max_filesize = 40; //MB

?>

Vim で php.ini を編集する

$ vim /opt/bitnami/php/lib/php.ini

php.ini の最終行付近にある以下のサイズを拡大する

upload_max_filesize = 40M
post_max_size = 40M

編集した php.ini の設定を反映するために Apache を再起動する

$ /opt/bitnami/apache/bin/apachectl restart

8. TestLink の警告表示に対応する

ログイン画面の上部中央に「インストールディレクトリを削除してください!」と警告表示される

再びインストールウィザードを実行させないために、該当ディレクトリごと削除する

$ rm -fr /opt/bitnami/testlink/install

9. HTTP ERROR 500 の対策

TestLink のコンテナにログインする

$ docker exec -it コンテナID /bin/bash

httpd プロセスを確認する

$ ps aux | grep httpd

vim で httpd.conf を編集する

$ sudo vim /opt/bitnami/apache/conf/httpd.conf

Apach起動時のエラー「AH00558: httpd: Could not reliably determine the server's fully qualified domain name〜」対策としてコメントアウト、サーバーネームが有れば設定する

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName www.example.com:80

編集した httpd.conf の設定を反映するために Apache を再起動する

$ /opt/bitnami/apache/bin/apachectl restart

以上

6
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
10