그누보드 5.5.12 버전을 사용 중인데 PHP8.4 업그레이드 바로 가능한가요?
연말에 8.2 지원이 종료된다하여 8.4로 업그레이드 해야하는데 바로 가능한지 여부를 알고 싶구요.
5.5.12 버전에서 5.6.43 패치를 바로 해도 가능한지도 알고 싶습니다. ㅜ
원초적인 질문 드려 죄송합니다. 초보자의 눈높이에서 답변 주시면 감사하겠습니다. 감사합니다.
답변 9개
초보자 눈높이로 순서만 정리해 드립니다. 위 분들 말씀이 다 맞고, 핵심은 한 번에 하나씩만 바꾸는 것입니다.
먼저, 너무 급하게 하지 않으셔도 됩니다. 연말은 PHP 8.2의 공식 보안 지원이 끝나는 때이지, 그날 사이트가 멈추는 것은 아닙니다. 호스팅사에서 안내한 전환 일정이 있는지만 확인해 보세요.
- 백업: 파일 전체와 DB를 내려받아 둡니다.
- 직접 고친 곳 확인: 테마·스킨·프로그램 파일 중 고친 곳이 있는지 적어 둡니다. 덮어쓰면 사라지는 부분입니다. 모르겠으면 만들어 주신 분께 물어보세요.
- 그누보드 먼저: PHP는 그대로 두고 5.6.43으로 올립니다. 패치 파일은 순서대로 적용하고, 전체 소스로 올릴 때는 고친 파일을 비교한 뒤 덮습니다. (위 hycore22님 설명)
- DB 업그레이드: 관리자 > 환경설정 > DB업그레이드를 실행합니다. (위 Define404님 설명)
- 점검: 로그인, 글쓰기, 파일 첨부, 회원가입, 비밀번호 찾기를 해 봅니다. 쇼핑몰이면 결제도 확인합니다.
- 그다음 PHP 8.4: 며칠 써 보고 문제가 없으면 바꿉니다. 바꾸기 전에 호스팅사에 되돌릴 수 있는지 먼저 물어보세요.
- 5번 점검을 한 번 더 합니다.
이렇게 나누면 고장이 나도 어느 단계 때문인지 바로 알 수 있습니다. 고친 파일이 많거나 1·2번에서 막히면, 거기서 멈추고 전문가에게 맡기는 편이 고장 난 뒤 복구하는 것보다 쌉니다. 진행하다 오류가 나면 화면에 나온 문구를 그대로 올려 주세요.
앞 답변들에 없는 부분 하나만 보탭니다. 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로 만들어졌는지 확인합니다.
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
답변을 작성하려면 로그인이 필요합니다.