2016-12-12 1 views
0

저는 초보자 인 Linux 사용자입니다. 주로 중앙 Syslog 서버에 사용할 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)를 구성하기 위해 주로이 자습서를 수행했습니다.Loganalyzer를 설치하려고 할 때 PHP 오류가 발생했습니다.

syslog 메시지를 보내는 테스트를 성공적으로 마쳤으며 지금까지 데이터베이스에서 메시지를 수집하고 있습니다. 나는 또한 성공적으로 테스트 PHP는 내가 다음 명령 줄 PHP -f DB-test.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); 
    ?> 

을 위해 내가 설정했습니다 데이터베이스에 연결할 수있는 한 작동하는 것 같다.

Loganalyzer install.php 파일을 실행할 때 내 문제가 발생하는 것으로 보입니다.

데이터베이스 정보와 creds를 포함하는 섹션에서, 그것은 나에게 꽤 쓸모없는 오류를 제공합니다.

ERROR: Cannot use the database 'rsyslogdb'! If the database does not exists, create it or check user access permissions! Mysql Error - Description:

내 아파치 로그를 확인한 결과 install.php 스크립트의 문제점을 지적한 것으로 보입니다. 처음에는 설치 스크립트가 이전 함수 ("Call to undefined function mysql_connect()" after upgrade to php-7)를 사용하고 있음을 알게 된 "정의되지 않은 함수 mysql_connect에 대한 호출"이라는 오류가 발생했습니다. Loganalyzer의 메모에서이 문제가 해결되었음을 알리는 것처럼 보입니다 (http://loganalyzer.adiscon.com/news/loganalyzer-v4-1-5-v4-stable-released/)

방금 ​​전에 스크립트에서 mysqli_connect 및 mysqli_select_db를 사용하여 어떤 일이 발생하는지 두 번 변경했습니다. 조금 더 있지만 아파치 로그에 오류가 계속 표시되어 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); 
} 

나는 잠시 동안 벽에 머리를 두드 리고 있었다. 누군가가 나를 올바른 방향으로 향하게 할 수 있습니까?

답변

0

mysql_select_db의 매개 변수가 잘못 표시됩니다.이 값은 mysqli_select_db(mysqli $link, string $dbname)이어야합니다.

따라서 줄을 $db_selected = mysqli_select_db($link_id, $_SESSION['UserDBName']);으로 변경하면 해당 오류를 수정해야합니다.

또한 과 함께 $userdbconn이 설정되어 있는지 확인합니다. mysqli_errno()은 현재 잘못된 연결이 전달되고 있습니다.

+0

나는 너에게 키스 할 수있어! 당신이 제안했던 것처럼 라인을 변경하십시오! 설치가 완료되었습니다! 나는 mysqli_errno에 대해서도 다른 가능한 문제를 조사 할 것이다. 다시 한 번 감사드립니다. –

관련 문제