尝试安装Loganalyzer 4.1.5时出现PHP错误

时间:2016-12-12 20:46:37

标签: php

我是一个非常新手的Linux用户。我已将LAMP服务器配置为主要用于中央系统日志服务器。 Ubuntu 16.04,带有Apache,php7和mariadb的最新稳定版本。我主要是按照本教程配置Loganalyzer(https://cloud4wi.zendesk.com/hc/en-us/articles/201827513-How-to-install-and-configure-a-SysLog-Server)。

我成功测试了向它发送syslog消息,并且可以看到数据库到目前为止正在收集它们。我也成功测试了php可以连接数据库我已经设置了rsyslog

    <?php
    $link = mysqli_connect("{host}", "{user}", "{password}", "{database}");

    if (!$link) {
        echo "Error: Unable to connect to MySQL." . PHP_EOL;
        echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
        echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }

    echo "Success: A proper connection to MySQL was made!." . PHP_EOL;
    echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

    mysqli_close($link);
    ?>

然后我从命令行php -f db-test.php运行此命令,它似乎工作。

运行Loganalyzer install.php文件时似乎出现了问题。

在我包含数据库信息和信用卡的部分,它给了我一个相当无用的错误。

  

错误:无法使用数据库&#39; rsyslogdb&#39;!如果数据库没有   存在,创建它或检查用户访问权限! Mysql错误 -   说明:

我检查了我的apache日志,他们似乎指出了install.php脚本的问题。最初我得到一个错误,说明&#34;调用未定义的函数mysql_connect&#34;这是我发现安装脚本使用旧函数("Call to undefined function mysql_connect()" after upgrade to php-7)的地方。这很奇怪,因为Loganalyzer的笔记似乎表明他们解决了这个问题(http://loganalyzer.adiscon.com/news/loganalyzer-v4-1-5-v4-stable-released/

我刚刚更改了脚本中的两个旧函数,使用mysqli_connect和mysqli_select_db来查看会发生什么。我进一步了,但apache日志仍然显示错误,我无法在Loganalyzer安装中进展。

[Mon Dec 12 15:23:21.563908 2016] [:error] [pid 1400] [client {ip}:50958] PHP Warning:  mysqli_select_db() expects parameter 1 to be mysqli, string given in /var/www/html/loganalyzer/install.php on line 382, referer: http://{ip}/loganalyzer/install.php?step=3

    >>> this is the line from install.php
        // Try to select the DB!
                                $db_selected = mysqli_select_db($_SESSION['UserDBName'], $link_id);
                                if(!$db_selected)
                                        RevertOneStep( $content['INSTALL_STEP']-1, GetAndReplaceLangStr( $content['LN_INSTALL_ERRORACCESSDENIED'], $_SESSION['UserDBName']) . "<br>" . DB_ReturnSimpleErrorMsg());


[Mon Dec 12 15:23:21.563997 2016] [:error] [pid 1400] [client {IP}:50958] PHP Warning:  mysqli_errno() expects parameter 1 to be mysqli, integer given in /var/www/html/loganalyzer/include/functions_db.php on line 215, referer: http://{ip}/loganalyzer/install.php?step=3
[Mon Dec 12 15:23:21.564013 2016] [:error] [pid 1400] [client {IP}:50958] PHP Warning:  mysqli_error() expects parameter 1 to be mysqli, integer given in /var/www/html/loganalyzer/include/functions_db.php on line 215, referer: http://{ip}/loganalyzer/install.php?step=3

    >>>> this is the line from functions_db.php
        // Return Mysql Error
                return "Mysql Error " . mysqli_errno($userdbconn) . " - Description: " . mysqli_error($userdbconn);
}

我现在已经把头撞到了墙上一段时间了。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

mysql_select_db的参数似乎有误,应为mysqli_select_db(mysqli $link, string $dbname)

因此,将行更改为$db_selected = mysqli_select_db($link_id, $_SESSION['UserDBName']);应该可以纠正该错误。

我还会检查$userdbconn$link_id一起设置的位置。 mysqli_errno()当前正在传递无效连接。