@navystack :) 보다 나은 이미지 제작에 도움이 되어 다행입니다 ㅎㅎ
C
cjakma
@cjakma
-
navystack/gnuboard 이미지에 php8 버전이 일부만 들어가 있는것 같습니다. -
navystack/gnuboard 이미지에 php8 버전이 일부만 들어가 있는것 같습니다.그래서, else 로 빠져서,
php4 대응용 mysql_connect 를 호출했다가.
php8 에서는 그것도 없으니까 500 에러가 터지는것 같습니다. -
navystack/gnuboard 이미지에 php8 버전이 일부만 들어가 있는것 같습니다.navystack/gnuboard 이미지로 docker compose 를 구동중인데,
별다른 조치 없이, Traefik 을 사용하지 않는 세팅으로, 동작시켜 보았습니다.
Traefik은 port 나 docker-network, ssl 인증서 관련 내용이라 별도로 사용하는 서비스가 있어, 제외한것입니다.이때, gnuboard 를 설치하면서 500 에러가 발생하는데,
PHP message : PHP Fatal error: Uncaught Error:Call to Undefined function %(#f90101)[mysql_connect()] in /var/www/html/lib/%(#f90101)[common.lib.php]:1655
라는 메세지가 반복해서 보입니다.
그간 Native 로 Gnubaord 를 써왔지만,
Docker 로 이동하며 처음 겪는 에러라서
gnuboard 커뮤니티에도 질문하고, 코드를 좀 봤는데요,
common.lib.php 파일의 1643 라인부터 sql_connect 함수에 이슈가 있는것 같습니다.docker hub 에 공유해주신 Docker image 는
php 8.2.16 / gnuboard 5.5.13 인것으로 확인 했습니다.아래 코드인데요,
G5_MYSQLI_USE = true 는 코드로 확인됩니다.
php8 의 mysqli 는 exsist 확인이 안되는것 같습니다.// DB 연결 function sql_connect($host, $user, $pass, $db=G5_MYSQL_DB) { global $g5; if(function_exists('mysqli_connect') && G5_MYSQLI_USE) { mysqli_report(MYSQLI_REPORT_OFF); $link = @mysqli_connect($host, $user, $pass, $db) or die('MySQL Host, User, Password, DB 정보에 오류가 있습니다.'); // 연결 오류 발생 시 스크립트 종료 if (mysqli_connect_errno()) { die('Connect Error: '.mysqli_connect_error()); } } else { $link = mysql_connect($host, $user, $pass); } return $link; }