因公司测试部门的同事需要,需要搭建redmine3.3.1和testlink1.9.15,并且需要把testlink集成到redmine中。本次服务器为CentOS7,已安装epel源,本机IP192.168.42.15。

首先分别从官网下载软件包:
redmine-3.3.1.tar.gz
testlink-1.9.15.tar.gz

安装数据库

因为testlink对数据库版本要求很高,我们安装mysql官方的mysql5.7

rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

yum安装下:

yum install yum install mysql-community-server mysql-community-devel

mysql官方的源不像centos的默认的源那么多的加速镜像,所以下载起来很慢,请耐心等待。

启动mysql:

systemctl start mysqld.service

mysql首次启动时初始化,会生成一个12位的随机密码。

cat /var/log/mysqld.log | grep password

以后新建用户的时候,还会继续验证密码,可以选择关闭这个选项,在/etc/my.cnf文件最下方加上如下配置:

validate-password=OFF

例行的安全配置:

mysql_secure_installation

在此设置中,可以重新设置下root密码,大家务必牢记。

安装redmine

yum install gcc rubygems ruby-devel

创建redmine数据库:
先用mysql -uroot -p登录mysql控制台

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'yourpasswd';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

密码设置成你自己用的密码。不要真设置成’yourpasswd’

安装Apache HTTPd:

yum install httpd

解压redmine安装包,重命名后并拷贝到/var/www目录下。

[root@template ~]# tar xf redmine-3.3.1.tar.gz
[root@template ~]# mv redmine-3.3.1 redmine
[root@template ~]# cp -avx redmine /var/www/

添加数据库配置文件:

cd /var/www/redmine/config               
cp database.yml.example database.yml

编辑vim database.yml,把production一栏改下:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "yourpasswd"
  encoding: utf8

redmine使用bundler处理gem依赖,我们先安装下:

gem install bundler

用bundle安装前,先安装下可能的依赖包:

yum install ImageMagick-devel

下面正式开始bundle安装:

[root@template ~]$ cd /var/www/redmine/
[root@template redmine]$ bundle install --without development test

产生一个session用的随机数,用户加密cookie:

[root@template redmine]$ bundle exec rake generate_secret_token

创建数据库结构:

[root@template redmine]$ RAILS_ENV=production bundle exec rake db:migrate

创建数据库初始数据:

[root@template redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data

会出现提示,我们选择“zh”。

权限设置:

redmine用户必须对以下目录具备具备写的权限:
files (存储附件用)
log (存放日志文件production.log)
tmp and tmp/pdf (生成pdf用)
public/plugin_assets (安装插件用)

处理下:

[root@template redmine]# chmod -R 755 files log tmp public/plugin_assets
[root@template redmine]# chown -R apache:apache /var/www/redmine/
[root@template redmine]# restorecon -Rv /var/www/redmine/

安装passenger:
安装passenger官方repo:

curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo

正式安装:

[root@template ~]# yum install mod_passenger

在apache创建redmine用的虚拟主机配置文件:
vim /etc/httpd/conf.d/redmine.conf

<VirtualHost *:80>
    ServerName 192.168.42.15:80
    DocumentRoot /var/www/redmine/public
</VirtualHost>

防火墙设置下:

 firewall-cmd --permanent --add-service=http
 firewall-cmd --reload

启动或者重启下httpd:

systemctl restart httpd.service

用浏览器打开http://192.168.42.15/ 可以看到redmine的页面,redmine的默认用户名和密码都是admin。初次进入admin控制台,系统会提示你修改admin用户密码。

testlink安装

先解压源码包:

[root@template ~]# tar xf testlink-1.9.15.tar.gz
[root@template ~]# mv testlink-1.9.15 testlink
[root@template ~]# cp -avx testlink /var/www/

简单配置下权限:

[root@template ~]# chown -R apache:apache /var/www/testlink/
[root@template ~]# restorecon -Rv /var/www/testlink/

testlink对数据库版本要求很高,对php版本也要求很高,我们从CentOS7默认的repo无法安装符合版本要求的php,所以我们安装remi仓库,来安装php7:

rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

启用remi的php7 的repo:

yum install yum-utils
yum-config-manager --enable remi-php70

开始安装:

yum install php php-fpm php-mysqlnd php-gd php-xml

在Apache HTTPd中新建testlink虚拟主机,我们给它分配一个新的端口8080:
vim /etc/httpd/conf.d/testlink.conf

Listen 8080
<VirtualHost *:8080>
    ServerName 192.168.52.15:8080
    DocumentRoot /var/www/testlink
    <Directory "/var/www/testlink">
        Options Indexes ExecCGI FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

改下Apache的其他几个配置:

vim /etc/httpd/conf.modules.d/00-mpm.conf

LoadModule mpm_event_module modules/mod_mpm_event.so
# LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
vim /etc/httpd/conf.d/php.conf
把mod_php的内容全部注释掉,改成这样:

<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost/"
</FilesMatch>

AddType text/html .php

DirectoryIndex index.php
vim /etc/php-fpm.d/www.conf
改成监听unix socket

listen = /var/run/php-fpm/php-fpm.sock
listen.owner = apache
listen.group = apache
listen.mode = 0600

改变下php的配置:
vim /etc/php.ini

date.timezone = Asia/Shanghai
cgi.fix_pathinfo=0
session.gc_maxlifetime = 2880
max_execution_time = 120

最后再设置下权限:

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/testlink/gui/templates_c(/.*)?"
restorecon -Rv /var/www/testlink/gui/templates_c/
mkdir -p /var/testlink/logs
mkdir -p /var/testlink/upload_area/
chown -R apache:apache /var/testlink
chcon -t httpd_sys_rw_content_t /var/www/testlink/

防火墙开放8080端口:

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

启动php-fpm,重启httpd:

systemctl start php-fpm.service
systemctl restart httpd.service

浏览器中打开http://192.168.42.15:8080/install/ 开始安装基本上下一步,下一步,配置好数据库,就完成了。接下来打开http://192.168.42.15:8080/login.php 就可以登录了。默认的用户名和密码都是admin。

登录后,主页提示“There are security warnings for your consideration. See details on file: /var/testlink/logs/config_check.txt. To disable any reference to these checkings, set $tlCfg->config_check_warning_mode = ‘SILENT’;”
可以vim /var/www/testlink/config.inc.php,把216行的:
$tlCfg->config_check_warning_mode = ‘FILE’;改成:
$tlCfg->config_check_warning_mode = ‘SLIENT’;
重启php-fpm生效。

testlink与redmine的集成

cd /var/www/testlink
cp custom_config.inc.php.example custom_config.inc.php
vim custom_config.inc.php

在配置的最后加上:

$g_interface_bugs = 'REDMINE'

在cfg目录新建配置文件:

cd /var/www/testlink/cfg
vim redmine.cfg.php

redmine.cfg.php内容如下:

<?php
/** redmine数据库的主机名称 */
define('BUG_TRACK_DB_HOST', 'localhost');
/** redmine数据库的名称 */
define('BUG_TRACK_DB_NAME', 'redmine');
/** Redmine使用的数据库类型
* 可以查看Redmine安装目录下 config/database.yml 文件中关于数据库的信息
*/
define('BUG_TRACK_DB_TYPE', 'mysql2');
/** Redmine数据库的用户名和密码 */
define('BUG_TRACK_DB_USER', 'redmine');
define('BUG_TRACK_DB_PASS', 'yourpasswd');
/** 定义链接数据库的字符集 **/
define('BUG_TRACK_DB_CHARSET',"UTF-8");
/* 链接Redmine问题列表的URL
** 注意最后的哪个 “/” 不能丢掉, 否则在TestLink测试用例中点击关联问题时,会出现404错误
*/
define('BUG_TRACK_HREF', http://192.168.42.15/issues/);
/** 链接缺陷跟踪系统(Redmine),新建问题的URL
** 该测试项目与Redmine中test项目关联。
*/
define('BUG_TRACK_ENTER_BUG_HREF',http://192.168.42.15/projects/test/issues/new);
// define('BUG_TRACK_ENTER_BUG_HREF',"http://localhost:3000/");

需要注意的是,testlink源码有bug,集成后会导致无法获取bug id的情况,需要改下源码(如果你是更新的版本,相信就不要更改了)。
vim /var/www/testlink/third_party/redmine-php-api/lib/redmine-rest-api.php ,在270行下加入如下内容:

    // this can happens because if I save object on _SESSION PHP is not able to
    // save resources.
    if( !is_resource($this->curl) )
    {
      $this->initCurl();
    } 

再次重启下php-fpm。

打开用管理员打开redmine,一次点击管理>>配置>>API,勾选启用REST web service,”启用JSONP支持”可以根据需要,选择是否勾选,点击保存。
点击“我的帐号”,在“API访问键”中点击“显示”,我这里的api key是7db39c5ad3bee72545e5e1ac7bca248d40cec148,每个人都不一样,待会下面的apikey不要照抄。

打开testlink主页的“问题跟踪系统”,选择好类型为redmine后,填入如下字段:

<issuetracker>
<apikey>7db39c5ad3bee72545e5e1ac7bca248d40cec148</apikey>
<uribase>http://192.168.42.15/</uribase>
<uriview>http://192.168.42.15/issues/</uriview>
<projectidentifier>test</projectidentifier>
</issuetracker>

在测试项目管理中,勾选“集成问题跟踪系统”,选择redmine。

接下来添加测试计划、测试用例等工作,就交给测试人员,我们的主要配置工作已经结束。

CentOS7下安装并集成redmine3.3.1和testlink1.9.15教程
Tagged on:         

发表评论

电子邮件地址不会被公开。 必填项已用*标注