ubuntu下testlink的安装(apache2+mysql+testlink1.9.20)

背景

公司拟用testlink管理测试用例,从完全纯粹的离线环境中搭建testlink还比较麻烦,网上资料虽多,但是涉及版本较老,很多不适用,所以总结本次完整搭建过程,希望有所帮助。

安装过程

提前准备

需要机器能联网,我这边是离线环境,可通过配置proxy实现。

apache

sudo apt-get install apache2

启停命令:

sudo systemctl start/restart/stop apache2.service

验证:
http://bigdata203/
在这里插入图片描述

php

安装

主要以下两步:

sudo apt-get install php7.0
sudo apt-get install libapache2-mod-php7.0

问题1: 在安装libapache2-mod-php7.0时提示找不到包,以下方案解决:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt-get install libapache2-mod-php7.0

问题2:在sudo add-apt-repository ppa:ondrej/php提示’~ondrej’ user or team does not exist。这可能和本地代理有关,使用以下方案解决

export http_proxy=http://192.168.10.20:808
export https_proxy=http://192.168.10.20:808
sudo -E add-apt-repository ppa:ondrej/php

验证

在/var/www/html中创建test.php,内容如下:

<?php
phpinfo();
?>

浏览器访问:http://bigdata203/test.php
在这里插入图片描述

testlink

安装

安装包官方地址:
https://github.com/TestLinkOpenSourceTRMS/testlink-code/releases/tag/1.9.20
在这里插入图片描述

将testlink安装包解压放置到/var/www/html下:

浏览器直接访问:http://bigdata203/testlink
在这里插入图片描述
勾选相关协议,一直下一步,到这个页面:
在这里插入图片描述

配置

主要看上面的警告信息和下面的错误信息

Web and PHP configuration:
在这里插入图片描述
斜体样式默认情况下可能有多个警告信息,如上图

修改php.ini即可解决相关警告。配置文件默认路径:/etc/php/7.0/apache2/php.ini

Maximum Session Idle Time before Timeout: gc_maxlifetime 默认1440,可以设置为3600
Checking max. execution time: max_execution_time 设置120

后面的警告信息就是是否启用相关扩展了,我这边只用到mysql,所以只需解决mysql的警告即可。即php7配置mysql扩展。(其他警告根据实际决定是否下载扩展,过程和mysql类似)。

下载extension

sudo apt-get install php7.0-mysql

启用extension:vi /etc/php/7.0/apache2/php.ini
将 “extension=php_mysqli.dll” 的注释取消即可
在这里插入图片描述
重启apache2:

sudo systemctl restart apache2.service

根据界面提示,我还开启了以下扩展:

extension=php_gd2.dll
extension=php_curl.dll

对应需要安装的东西:

sudo apt-get install php7.0-gd
sudo apt-get install php7.0-curl

最终界面检查结果:
在这里插入图片描述
下一步:填写数据库连接信息
在这里插入图片描述
下一步:
在这里插入图片描述
根据提示,是因为没有权限导致的,可直接修改整个目录权限

sudo chown -R www-data:www-data testlink/

删除自动创建的数据库,再来一次install:
在这里插入图片描述
根据界面提示(IMPORTANT NOTICE,还重复了三次~),还需要手工运行这个sql(脚本中将YOUR_TL_DBNAME替换为实际的库名):
/var/www/html/testlink/install/sql/mysql/testlink_create_udf0.sql

# TestLink Open Source Project - http://testlink.sourceforge.net/
# This script is distributed under the GNU General Public License 2 or later.
# ---------------------------------------------------------------------------------------
# @filesource testlink_create_udf0.sql
#
#
USE `testlink`; /* Replace before run */
DROP function IF EXISTS `UDFStripHTMLTags`;

DELIMITER $$
USE `testlink`$$ /* Replace before run */
CREATE FUNCTION `UDFStripHTMLTags`(Dirty TEXT) RETURNS TEXT CHARSET utf8
BEGIN
DECLARE iStart, iEnd, iLength int;
   WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
      BEGIN
        SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
        SET iLength = ( iEnd - iStart) + 1;
        IF iLength > 0 THEN
          BEGIN
            SET Dirty = Insert( Dirty, iStart, iLength, '');
          END;
        END IF;
      END;
    END WHILE;
RETURN Dirty;
END$$

DELIMITER ;

验证

前台访问:
admin/admin
在这里插入图片描述
查看日志报错信息如下(/var/log/apache2/error.log):
在这里插入图片描述
安装php7.0-mbstring即可

sudo apt-get install php7.0-mbstring

再次访问:收工!
在这里插入图片描述

配置SMTP

默认情况,离线环境下是不能发送邮件的,如果用户密码忘了,点击登录界面的忘记密码会报错(管理员点击重置密码也会报错)。所以需要解决这个问题。我们已经有了一个代理,现在的思路是让PHP通过代理发送邮件,阅读源码发现,testlin发送邮件的类是PHPMailer,源码是不支持代理的,所以参考网上大哥的魔改代码,通过socks5实现代理发送邮件。一个字:
参考链接:
应用:https://blog.csdn.net/rty426/article/details/89139251
原理:https://blog.csdn.net/rty426/article/details/88899069

如果原理看不懂,那就直接按以下步骤执行,具体步骤:

  1. 修改:testlink/vendor/phpmailer/phpmailer/src/PHPMailer.php
  2. 修改:testlink/vendor/phpmailer/phpmailer/src/SMTP.php

第一二个文件就是大神修改后的文件(加入proxy功能),文件内容见大神连接
在这里插入图片描述

替换时需要注意不要改变原来的namespace,即从class开始内容替换
在这里插入图片描述
3. 修改:testlink/lib/functions/email_api.php
我这边的版本在 186行,代理地址根据实际情况填写

  $mail->proxy = [
    'proxyHost' => '192.168.10.20',
    'proxyPort' => '1080'
  ];

在这里插入图片描述
5. 配置SMTP:testlink/config.inc.php

$g_smtp_host        = 'smtp.163.com';  # SMTP server MUST BE configured
$g_tl_admin_email     = 'yangqintest@163.com'; # for problem/error notification
$g_from_email         = 'yangqintest@163.com';  # email sender
$g_return_path_email  = 'yangqintest@163.com';
$g_smtp_username    = 'yangqintest@163.com';  # user
$g_smtp_password    = 'SFSFSFAFAFA';  # password

验证:
在忘记密码页面,输入用户名后,提示邮件发送成功:
在这里插入图片描述
收到的邮件:
在这里插入图片描述

再次向大哥致敬~
https://blog.csdn.net/rty426/article/details/89139251

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值