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개
게시글 목록
| 번호 | 제목 |
|---|---|
| 14227 | |
| 14211 | |
| 14207 | |
| 14198 | |
| 14192 | |
| 14178 | |
| 14170 | |
| 14149 | |
| 14134 | |
| 14123 | |
| 14108 | |
| 14094 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기