当“新安装”是唯一可用选项时,Testlink 安装默认为“升级”

当“新安装”是唯一可用选项时,Testlink 安装默认为“升级”

我一直在今天早上部署的全新 centos 7 VM 上设置 testlink。这显然是一台全新的服务器,之前从未安装过该软件。

但是,当我通过 Web 门户进行安装时,安装默认为升级,并且不会在第二个最终安装屏幕上创建我的数据库。

我正在使用以下设置:

  • nginx 1.14.2
  • mysql 5.7
  • PHP 7.2

以下是我当前安装过程的屏幕截图:

选择新安装:

测试链接 安装 开始

同意条款:

条款和条件

验证系统要求:

系统要求

设置数据库用户和访问权限(此时,它说我已经请求升级,并且从图 1 中可以看到,只有全新安装可供选择,而我没有原始安装可以更新):

数据库设置

确认 DB 连接有效并且能够访问 testlink DB,但它说我正在尝试从版本 1.7 升级并且我应该选择升级,但没有可用的选项可以执行此操作。

安装失败

有人遇到过这个问题吗?我们有解决方法吗?

答案1

我从未想过超级用户会如此有帮助。我们被建议在没有人真正检查或使用的 stackoverflow 子集上寻求帮助,这真是太棒了……

无论如何,我重建了我的机器,并下载了该软件的一个版本,并解决了这个问题。最新版本的 mysql 和软件查询的语法存在问题。

为了解决这个问题,我修改了 installUtils.php 中的 php 代码

// 20070310 - $the_host -> $db_host        
if (strlen(trim($db_host)) != 0)
{
  $stmt .= "@" . "'" . $dbhandler->prepare_string($db_host) . "'";
}         
$stmt .= " IDENTIFIED BY '" .  $passwd . "'"; // this is bad

应该:

   // 20070310 - $the_host -> $db_host        
if (strlen(trim($db_host)) != 0)
{
  $stmt .= "@" . "'" . $dbhandler->prepare_string($db_host) . "'";
}         
// $stmt .= " IDENTIFIED BY '" .  $passwd . "'"; // this is good

和:

if( strcasecmp('localhost',$db_host) != 0)
  {
    // 20060514 - franciscom - missing 
    $stmt = "GRANT SELECT, UPDATE, DELETE, INSERT ON " . 
             "`" . $dbhandler->prepare_string($db_name) . "`" . ".* TO " . 
             "'" . $dbhandler->prepare_string($login) . "'@'localhost'" .
            " IDENTIFIED BY '" .  $passwd . "'"; // this is bad
    if ( !@$dbhandler->exec_query($stmt) ) 
    {
      $op->msg = "ko - " . $dbhandler->error_msg();
      $op->status_ok=false;
    }
  }
}

应该:

if( strcasecmp('localhost',$db_host) != 0)
  {
    // 20060514 - franciscom - missing 
    $stmt = "GRANT SELECT, UPDATE, DELETE, INSERT ON " . 
             "`" . $dbhandler->prepare_string($db_name) . "`" . ".* TO " . 
             "'" . $dbhandler->prepare_string($login) . "'@'localhost'"; // this is good
    if ( !@$dbhandler->exec_query($stmt) ) 
    {
      $op->msg = "ko - " . $dbhandler->error_msg();
      $op->status_ok=false;
    }
  }
}

再次感谢您的支持,如果没有您我真不知道该怎么办。

相关内容