2022년 8월 16일
기능 추가 및 개선사항이 적용된 버전 공유합니다
파일명 : gnuboard5_update_220816.zip
1. DB 업데이트 기능 추가
■ 버전 업데이트 진행 시, DB업데이트도 같이 진행할 수 있도록 선택항목이 추가됩니다.
- 업데이트 버전에 맞는 DB변경사항이 적용됩니다.
- 다운그레이드 시, 해당 기능을 이용할 수 없으며 DB변경사항이 원복되지 않습니다. (구현은 되어있지만, 데이터 망실의 가능성이 있으므로 주석처리)

■ migration Table이 추가됩니다.
- DB 업데이트 시, 업데이트 이력을 기록할 수 있는 테이블입니다.
CREATE TABLE `g5_migrations` (
`mi_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`mi_version` varchar(30) NOT NULL COMMENT '업데이트 버전',
`mi_sort` int(11) DEFAULT 0 COMMENT '순번',
`mi_script` varchar(255) NOT NULL COMMENT 'migration 파일이름',
`mi_execution_date` datetime DEFAULT NULL COMMENT '실행시각',
`mi_execution_time` int(11) DEFAULT NULL COMMENT '실행시간',
`mi_result` varchar(100) DEFAULT NULL COMMENT '성공여부 (success or fail)',
`mi_reason` varchar(255) DEFAULT NULL COMMENT '실패 메시지',
PRIMARY KEY (`mi_id`)
) ENGINE=InnoDB AUTO_INCREMENT=68 DEFAULT CHARSET=utf8;
2. 복원(백업)파일
- 삭제기능이 추가되었습니다.
3. 로그파일
- 삭제기능이 추가되었습니다.
- 버전 변경 내역기록이 추가되었습니다.
4. 코드개선
- Class 파일이 기능 별로 분리되었습니다.
5. 기타
- LSB(Late Static Binding) 적용으로 인해, PHP 5.2에서 PHP 5.3 버전부터 지원으로 변경됩니다.
- FTP/SFTP 계정정보 입력 시, 비밀번호 입력 폼이 적용됩니다.
- 버전 목록에서 beta버전, 버전 형식에 맞지않은 이전버전으로 업데이트가 불가능합니다.
- Class 관련 PHP파일의 경로가 Plugin 폴더 하위로 이동했습니다. (/plugin/version_update/..)
- Github API 요청횟수를 줄이기 위해 version.json 파일이 추가됩니다. (/data/version.json)
===================================================================
Github API를 이용한 그누보드 버전 관리 기능입니다.
기능
- 업데이트 : 원하는 버전의 압축파일을 Github API를 이용해 가져온 후 비교&업데이트 해주는 기능입니다.

1번 : 현재 버전 / 최신 버전 / 업데이트 가능 버전을 확인 할 수 있습니다.
2번 : 파일 업로드 정보를 설정하는 곳입니다. (FTP, SFTP)
3번 : 업데이트 버전 선택 시 commit 정보를 확인 할 수 있는 영역입니다.
FTP 또는 SFTP 연결에 성공하면 아래 내역을 확인하고 계속 진행 할 수 있습니다.

- 업데이트 버전
- 현재 디스크 용량
- 업데이트를 진행 파일 (임의로 커스텀한 파일이 있다면 빨간글씨로 표시됩니다.)
업데이트 진행 결과를 확인할 수 있습니다.

- 복원 : 업데이트를 진행할 때 생성되는 원본 압축파일으로 그누보드를 다시 원상복구시키는 기능입니다. 업데이트와 폼이 거의 동일합니다.

1번 : 버전 업데이트시 생성된 복원파일 목록입니다.

복원 일시 및 복원 버전을 확인할 수 있습니다.
- 로그 : 업데이트/복원을 진행한 내역을 확인할 수 있는 기능입니다.

적용 방법
- 압축 해제 이후, 그누보드 경로에 덮어씌우면 됩니다. (기존 그누보드 파일에 영향이 없습니다.)
참고사항
- PHP Version 5.2.17 ~ 8.1.7에서 동작합니다.
- 리눅스 & 윈도우 환경에서 동작합니다.
- 그누보드 업데이트 지원 버전은 최신 30개의 버전이 지원됩니다. (https://github.com/gnuboard/gnuboard5/releases 기준)
- Github API를 이용하기 때문에 PAT(Personal Access Token)을 생성 및 적용을 권장합니다.
- 지원 프로토콜은 FTP, SFTP를 지원하며 각 프로토콜의 PHP 모듈을 필요로 합니다.
사전준비
- PAT(Personal Access Token)
Github API는 시간당 60회의 제한이 있지만, 요청제한을 없애려면 개인 토큰을 생성해서 적용해야합니다. Token을 적용하지 않아도 사용할 수는 있지만, 요청제한 초과 시 정상적으로 업데이트 진행이 되지 않을 수 있으므로 추가하는 것을 권장합니다.
- github.com 로그인
- 우측상단 Profile 클릭 > Settings
- 좌측 Developer settings > Personal access tokens 메뉴에서 토큰 생성 (자세한 내용은 링크 참조) https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
- $token 값 추가
/adm/update/update.lib.php

- SFTP
SFTP 옵션을 활성화하려면, ssh2 module을 설치해서 ssh관련 함수를 사용할 수 있어야합니다.
오류발생
1. '정보조회에 실패했습니다. 1시간 후 다시 시도해주세요.' 또는 '비교리스트확인 통신에 실패했습니다.'
=> PAT 값이 유효하지 않아서 생기는 오류입니다. $token 변수를 확인하거나 Token을 재발급받으시길 바랍니다.
2. 디스크 용량이 실제와 다르게 표시되는 문제
=> 웹 호스팅의 경우, 공용으로 사용하기 때문에 큰 용량이 잡힘. 사용가능한 용량이 넘지 않는다면 업데이트 기능에 문제가 없습니다.
테스트를 진행한다고 했는데 부족한 점이 많이 있을 것 같습니다. 좋은 아이디어나 조언이 있다면 겸허히 받아들이고 더 발전시키도록 하겠습니다. 감사합니다.
댓글 94개
Error : (22) API 요청이 실패했습니다.
요청 URL : https://api.github.com/repos/gnuboard/gnuboard5/compare/v5.5.8.2...v5.4.5.3
이렇게 에러 발생하네요.
2. 위의 에러가 해결되었습니다.
그누보드를 수동으로 5.4.9로 패치하고 나니 최신 버전으로 되었습니다. 5.4.9 버전부터 되는지, 그 이하 버전부터 되는지는 잘 모르겠고, 5.4.9까지 하고 시험삼아 해보았습니다.
3. 그런데 다른 계정도 5.4.9까지 패치하고 나니 아래 에러가 나옵니다.
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/hosting_users/qtbank/www/g5/plugin/version_update/G5UpdateLog.lib.php on line 22
이 계정의 사양입니다.
UTF-8
PHP Version 5.2.17p1
Mysql 5.x
플러그인에 관심 가져주셔서 감사한 말씀드리며, 여러 질문에 대해 정리해서 답변 드리겠습니다.
1. 패치는 순차적으로 하지 않아도 업데이트가 가능합니다.
5.4.5.3 버전의 경우, 그누보드 Github Realeases에 등록되지 않은 버전이기 때문에 패치를 진행하실 수 없지만, 5.4.7이전버전도 업데이트 할 수 있도록 확인해보도록 하겠습니다
- 참고 : 현재는 그누보드 5.4.7버전부터 업데이트를 지원합니다.
2. PHP 버전지원 관련
2022.06.29 버전은 PHP 5.2부터 지원하며, 22.08.16 업로드 버전은 PHP 5.3부터 지원하게 됩니다.
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/hosting_users/qtbank/www/g5/plugin/version_update/G5UpdateLog.lib.php on line 22
위의 오류는 PHP 5.2에서 double colon을 사용하지 못해서 발생하는 오류로 확인됩니다.
PHP 버전을 최신으로 업데이트하거나 2022.06.29 업로드 버전을 이용해주시기 바랍니다.
더 궁금하신 내용이 있으시면 댓글 남겨주시길 바랍니다. 감사합니다 :)
게시글 목록
| 번호 | 제목 |
|---|---|
| 14227 | |
| 14211 | |
| 14207 | |
| 14198 | |
| 14192 | |
| 14178 | |
| 14170 | |
| 14149 | |
| 14134 | |
| 14123 | |
| 14108 | |
| 14094 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기