그누보드 5.5.12 버전을 사용 중인데 PHP8.4 업그레이드 바로 가능한가요?

완전 초보자인데. 그누보드 최신버전으로 업그레이드 하고 싶은데. 하다가 잘못될까봐 두려워
연말에 8.2 지원이 종료된다하여 8.4로 업그레이드 해야하는데 바로 가능한지 여부를 알고 싶구요.
5.5.12 버전에서 5.6.43 패치를 바로 해도 가능한지도 알고 싶습니다. ㅜ 
원초적인 질문 드려 죄송합니다. 초보자의 눈높이에서 답변 주시면 감사하겠습니다. 감사합니다.
|

답변 8개

그냥 옷을 다시 입이는걸 추천 합니다

앞 답변들에 없는 부분 하나만 보탭니다. 5.5.12에서 5.6.43으로 파일을 올린 뒤에 꼭 하셔야 하는 일입니다.

예전 그누보드는 화면에 접속할 때 필요한 DB 변경을 알아서 맞춰 주었습니다.
5.6.37부터는 이 자동 보정이 없어졌습니다. 공식 배포 안내에 "파일 복사만으로 업데이트가 끝나지 않는다"고 적혀 있습니다.
그래서 파일을 올린 뒤에 최고관리자로 로그인해서 관리자 > 환경설정 > DB업그레이드 화면을 열고, 남은 항목을 실행하셔야 합니다.

이 단계를 빠뜨렸을 때 바로 드러나는 증상이 있습니다.
5.6.42부터 비밀번호 찾기에 요청 횟수 제한이 들어갔고, 이 기록을 g5_abuse_rate 라는 새 테이블에 저장합니다.
이 테이블이 없거나 InnoDB가 아니면 비밀번호 찾기가 아예 멈추고, 화면에는 "현재 서비스를 이용할 수 없다"는 안내만 나옵니다.
앞 답변에서 말한 G5_DOMAIN 설정과 증상이 비슷하니, 비밀번호 찾기가 안 되면 두 가지를 모두 확인해 보세요.

확인 순서는 이렇습니다.
1. 파일 반영 후 관리자 > 환경설정 > DB업그레이드에서 실행 안 된 항목이 없는지 봅니다.
2. 특히 20261008_001_abuse_rate, 20261008_002_abuse_rate_transaction, 20261008_003_password_lost_policy 세 개가 순서대로 적용됐는지 봅니다.
3. phpMyAdmin에서 아래로 테이블이 InnoDB로 만들어졌는지 확인합니다.

Copy
SHOW TABLE STATUS LIKE 'g5_abuse_rate';

Engine 칸이 InnoDB면 됩니다. 테이블 접두어를 바꾸셨다면 이름도 맞춰 주세요.
4. 마지막으로 테스트 회원으로 비밀번호 찾기 메일이 실제로 오는지 확인합니다.

하나 더 있습니다. 5.6.37 안내에는 패치 때 지워야 할 파일 목록(orderupgrade.php, shop/kakaopay/ 안의 일부 파일)이 있습니다.
전체 소스를 덮어쓰는 방식은 파일을 지워 주지 않으니, 영카트를 쓰신다면 이 목록도 같이 정리하세요.

근거 (그누보드5 공식 저장소 v5.6.43)
https://github.com/gnuboard/gnuboard5/blob/v5.6.43/docs/release-5.6.37.md
https://github.com/gnuboard/gnuboard5/blob/v5.6.43/docs/release-5.6.42.md
https://github.com/gnuboard/gnuboard5/blob/v5.6.43/docs/database-migrations.md

PHP 8.4 쪽만 보태겠습니다. 그누보드 5.5.12 원본 파일 1,477개를 PHP 8.4.7 로 문법 검사(php -l)해 봤는데, 오류가 난 건 LG U+ 결제 폴더의 보조 파일 두 개(plugin/lgxpay/lgdacom/patch.php, ping.php)뿐이었습니다. 이 두 파일은 사이트 어디서도 불러 쓰지 않고, 5.6.43 에도 똑같은 파일이 그대로 들어 있습니다. 나머지는 Deprecated 경고인데 대부분 엑셀 내려받기용 PHPExcel 라이브러리에서 나오고, 화면을 멈추게 하는 오류는 아닙니다.

다만 코드를 실행하지 않고 본 검사라 실제 동작까지 보장하지는 못하고, 직접 고친 파일이나 따로 받은 스킨·플러그인은 여기에 들어 있지 않습니다. 복제본에서 PHP 8.4 로 바꿔 직접 눌러 보시고, 운영 서버는 화면에 오류가 표시되지 않게 해 두세요.

5.6.43 으로 올리실 때 꼭 챙기실 게 하나 있습니다. 5.6.37 부터 비밀번호 찾기와 메일 인증 메일의 링크를 config.php 의 G5_DOMAIN 주소로만 만듭니다. 이 값이 비어 있으면 비밀번호 찾기에서 '발송됩니다' 안내만 뜨고 메일은 실제로 나가지 않으며, 메일 인증을 켠 사이트는 회원가입도 막힙니다. config.php 주석에는 보안서버 주소가 없으면 공란으로 두라고 돼 있어서 비워 두기 쉽습니다. 올린 뒤 define('G5_DOMAIN', 'https://사이트주소'); 처럼 실제 주소를 넣고 비밀번호 찾기 메일이 오는지 확인해 보세요.

공식 안내(5.6.37 업데이트 순서 1번): https://github.com/gnuboard/gnuboard5/blob/master/docs/release-5.6.37.md

별 문제 없을듯...
백업 받고 해보세요 :)
일단 백업 받고 하나씩 찬찬히 보세요 :)
기존에 사용하시던 스킨과 커스텀 기능들이 있다면
한번에 덮으시면 안되구요
그누보드 깃에서 변경된 파일들 확인하며 넣으시는걸 추천드립니다..
테마로만 사용하셨고 다른데 의존이 없다면 최신버전에 사용하시던 테마만 넣으시면 되구요!

PHP부터 운영 서버에서 바로 8.4로 바꾸기보다는, 복제한 테스트 사이트에서 그누보드와 PHP를 나눠서 바꾸시는 편이 좋습니다.

앞 답변에 한 가지 구분을 보태면, '전체 소스'와 'patch.zip'은 다릅니다. 5.6.43 배포 안내에 적힌 패치 기준은 5.6.42입니다. 따라서 5.5.12에 5.6.43.patch.zip 하나만 덮으면 중간 변경이 빠집니다. 패치 파일로 가면 각 배포본의 기준 버전에 맞춰 순서대로 적용해야 합니다. 전체 소스로 올리는 경로도 있지만, 수정한 파일·테마·플러그인을 그대로 덮어버리지 않도록 비교와 병합이 필요합니다. '무조건 모든 버전을 하나씩 설치해야 한다'는 뜻은 아닙니다.

초보자 기준으로는 아래 순서로 진행해 보세요.
1. 현재 파일 전체와 DB를 함께 백업하고, 호스팅에 복구 방법과 테스트 공간 제공 여부를 확인합니다.
2. 운영 사이트는 그대로 두고, 복제본에서 최신 그누보드 소스를 반영합니다. 누락된 관리자 DB업그레이드와 이전 배포본의 삭제 파일·별도 안내도 확인합니다.
3. 그 상태에서 PHP를 8.4로 바꿔 로그인, 글·댓글 작성, 첨부파일, 메일, 관리자 기능을 확인합니다. 영카트라면 결제·취소·현금영수증은 PG 테스트 환경에서도 확인해야 합니다.
4. 오류가 없고 복구 준비까지 된 뒤 운영 반영 시간을 잡습니다.

PHP 공식 일정상 8.2의 보안 지원 종료는 2026-12-31이고, 8.4는 2028-12-31입니다. 5.6.43에는 PHP8.4 관련 경고 보완도 들어 있지만, 이것만으로 사용 중인 외부 스킨·플러그인과 직접 수정한 코드까지 호환된다고 보장되지는 않습니다.

공식 참고:
PHP 지원 일정: https://www.php.net/supported-versions.php
5.6.43 패치 기준·업데이트 안내: https://sir.kr/boards/g5_pds/7793
전체 소스와 순차 패치에 대한 배포자 설명(댓글): https://sir.kr/boards/g5_pds/7238

일단 최신 버전은 8.4에서 잘 돌아가네요. 
패치는 한번에 최근걸로 하는게 아니라 한단계식 하셔야합니다.

답변을 작성하려면 로그인이 필요합니다.