그누보드 [G4] 그누보드4를 php 7.x 에서 사용하기 ( 완료되지 않은 강좌 )
페이지 정보
본문
그누보드4를 php 7.x 에서 사용하려면 mysql_* 를 mysqli_* 로 변경해야 합니다.
그누보드4는 mysql_select_db 함수를 이용해서 mysql과 접속을 하지만
mysql_select 는 http://php.net/manual/en/function.mysql-select-db.php 에 의하면 5.5.0 미만일때만 사용이 가능합니다.
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.
이 확장은 PHP 5.5.0에서 사용되지 않으며 PHP 7.0.0에서 제거되었습니다.
<?php phpinfo(); ?> 를 이용해서 사용하고자 하는 서버의 php 버전을 확인해보세요.
PHP 5.5.0 이후 버전이 설치된 환경이라면
그누보드4에서 mysql_select_db 를 찾아서 mysqli_connect 로 변경하면 정상 이용 가능합니다.
1. 그누보드4 / install / install_db.php 45줄
$select_db = @mysql_select_db($mysql_db, $dblink);
를 아래와 같이 변경
$select_db = @mysqli_connect($mysql_db, $dblink);
2. 그누보드4 / lib / common.lib.php 1126줄
return @mysql_select_db($db, $connect);
를 아래와 같이 변경
return @mysqli_connect($db, $connect);
3. lib / common.php
// DB 연결
function sql_connect($host, $user, $pass)
{
global $g4;
return @mysql_connect($host, $user, $pass);
}
// DB 선택
function sql_select_db($db, $connect)
{
global $g4;
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
return @mysql_select_db($db, $connect);
}
를 아래와 같이 변경
// DB 연결
function sql_connect($host, $user, $pass, $mysql_db)
{
global $g4;
$link = mysqli_connect($host, $user, $pass, $db);
// 연결 오류 발생 시 스크립트 종료
if (mysqli_connect_errno()) {
die('Connect Error: '.mysqli_connect_error());
}
return $link;
}
// DB 선택
function sql_select_db($db, $connect)
{
global $g4;
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
//return @mysql_select_db($db, $connect);
if(function_exists('mysqli_select_db'))
return @mysqli_select_db($connect, $db);
else
return @mysql_select_db($db, $connect);
}
4. lib/common.lib.php 에서
mysql_ 를 mysqli_ 로 변경합니다.
5. common.php
$connect_db = sql_connect($mysql_host, $mysql_user, $mysql_password);
$select_db = sql_select_db($mysql_db, $connect_db);
를 아래와 같이 변경합니다.
$connect_db = sql_connect($mysql_host, $mysql_user, $mysql_password) or die('MySQL Connect Error!!!');
$select_db = sql_select_db($mysql_db, $connect_db) or die('MySQL DB Error!!!');
6. 작업중입니다.
그누보드4는 mysql_select_db 함수를 이용해서 mysql과 접속을 하지만
mysql_select 는 http://php.net/manual/en/function.mysql-select-db.php 에 의하면 5.5.0 미만일때만 사용이 가능합니다.
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.
이 확장은 PHP 5.5.0에서 사용되지 않으며 PHP 7.0.0에서 제거되었습니다.
<?php phpinfo(); ?> 를 이용해서 사용하고자 하는 서버의 php 버전을 확인해보세요.
PHP 5.5.0 이후 버전이 설치된 환경이라면
그누보드4에서 mysql_select_db 를 찾아서 mysqli_connect 로 변경하면 정상 이용 가능합니다.
1. 그누보드4 / install / install_db.php 45줄
$select_db = @mysql_select_db($mysql_db, $dblink);
를 아래와 같이 변경
$select_db = @mysqli_connect($mysql_db, $dblink);
2. 그누보드4 / lib / common.lib.php 1126줄
return @mysql_select_db($db, $connect);
를 아래와 같이 변경
return @mysqli_connect($db, $connect);
3. lib / common.php
// DB 연결
function sql_connect($host, $user, $pass)
{
global $g4;
return @mysql_connect($host, $user, $pass);
}
// DB 선택
function sql_select_db($db, $connect)
{
global $g4;
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
return @mysql_select_db($db, $connect);
}
를 아래와 같이 변경
// DB 연결
function sql_connect($host, $user, $pass, $mysql_db)
{
global $g4;
$link = mysqli_connect($host, $user, $pass, $db);
// 연결 오류 발생 시 스크립트 종료
if (mysqli_connect_errno()) {
die('Connect Error: '.mysqli_connect_error());
}
return $link;
}
// DB 선택
function sql_select_db($db, $connect)
{
global $g4;
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
//return @mysql_select_db($db, $connect);
if(function_exists('mysqli_select_db'))
return @mysqli_select_db($connect, $db);
else
return @mysql_select_db($db, $connect);
}
4. lib/common.lib.php 에서
mysql_ 를 mysqli_ 로 변경합니다.
5. common.php
$connect_db = sql_connect($mysql_host, $mysql_user, $mysql_password);
$select_db = sql_select_db($mysql_db, $connect_db);
를 아래와 같이 변경합니다.
$connect_db = sql_connect($mysql_host, $mysql_user, $mysql_password) or die('MySQL Connect Error!!!');
$select_db = sql_select_db($mysql_db, $connect_db) or die('MySQL DB Error!!!');
6. 작업중입니다.
댓글목록
등록된 댓글이 없습니다.