테스트 사이트 - 개발 중인 베타 버전입니다

그누보드 버전 업데이트 관리기능

· 3년 전 · 10724 · 94
1.1 업데이트 설정_1_0.png

2022년 8월 16일 

기능 추가 및 개선사항이 적용된 버전 공유합니다

파일명 : gnuboard5_update_220816.zip

 

1. DB 업데이트 기능 추가

■ 버전 업데이트 진행 시, DB업데이트도 같이 진행할 수 있도록 선택항목이 추가됩니다.

  • 업데이트 버전에 맞는 DB변경사항이 적용됩니다.
  • 다운그레이드 시, 해당 기능을 이용할 수 없으며 DB변경사항이 원복되지 않습니다. (구현은 되어있지만, 데이터 망실의 가능성이 있으므로 주석처리)

3717582117_1660618892.5035.png

 

■ 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를 이용해 가져온 후 비교&업데이트 해주는 기능입니다.

3717582117_1656479376.1376.png

1번 : 현재 버전 / 최신 버전 / 업데이트 가능 버전을 확인 할 수 있습니다.

2번 : 파일 업로드 정보를 설정하는 곳입니다. (FTP, SFTP)

3번 : 업데이트 버전 선택 시 commit 정보를 확인 할 수 있는 영역입니다.

 

FTP 또는 SFTP 연결에 성공하면 아래 내역을 확인하고 계속 진행 할 수 있습니다.

3717582117_1656480860.8552.png

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

 

업데이트 진행 결과를 확인할 수 있습니다.

3717582117_1656481406.387.png

 

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

3717582117_1656479695.3881.png

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

 

3717582117_1656479795.9826.png

복원 일시 및 복원 버전을 확인할 수 있습니다.

 

  • 로그 : 업데이트/복원을 진행한 내역을 확인할 수 있는 기능입니다.

3717582117_1656479850.5445.png

 

적용 방법

  • 압축 해제 이후, 그누보드 경로에 덮어씌우면 됩니다. (기존 그누보드 파일에 영향이 없습니다.)

 

참고사항

  • 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을 적용하지 않아도 사용할 수는 있지만, 요청제한 초과 시 정상적으로 업데이트 진행이 되지 않을 수 있으므로 추가하는 것을 권장합니다.

  1. github.com 로그인
  2. 우측상단 Profile 클릭 > Settings
  3. 좌측 Developer settings > Personal access tokens 메뉴에서 토큰 생성 (자세한 내용은 링크 참조) https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
  4. $token 값 추가

/adm/update/update.lib.php

3717582117_1656479203.3184.png

  • SFTP 

SFTP 옵션을 활성화하려면, ssh2 module을 설치해서 ssh관련 함수를 사용할 수 있어야합니다.

 

 

오류발생

1. '정보조회에 실패했습니다. 1시간 후 다시 시도해주세요.' 또는 '비교리스트확인 통신에 실패했습니다.'

=> PAT 값이 유효하지 않아서 생기는 오류입니다. $token 변수를 확인하거나 Token을 재발급받으시길 바랍니다. 

 

2. 디스크 용량이 실제와 다르게 표시되는 문제

=> 웹 호스팅의 경우, 공용으로 사용하기 때문에 큰 용량이 잡힘. 사용가능한 용량이 넘지 않는다면 업데이트 기능에 문제가 없습니다.

 

 

 

테스트를 진행한다고 했는데 부족한 점이 많이 있을 것 같습니다. 좋은 아이디어나 조언이 있다면 겸허히 받아들이고 더 발전시키도록 하겠습니다. 감사합니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 94개

과유불급이지 않을까요?
이것은 하나의 도구일 뿐 본질의 업데이트 파일은 SIR 에서 제공하는데...
질문의 대상이 잘 못 된 듯 보입니다 ^^;;;
역시 그렇군요..ㅠㅠ;
답변 감사합니다
혹시 몰라 차근차근 업데이트 중입니다.
이넘의 게으름이 일을 엄청 많이 만드네요 ㅠㅠ;;

ps 녹두탐님 덕분에 업데이트 편하게 해서 좋네요
오오~ 정말 유용한 플러그인 감사드려요!! ^-^
추천을 한 번밖에 누르지 못하는게 아쉽네요~ ㅠㅠ
그럼 비 조심하시고 좋은 저녁 되세요 :)
우와 이건 머.... @@ 정말 실무에서 오류없이 잘 패치만 되면 참 좋을 듯하네요.
멋진 도전, 시도, 작업... 귀합미당...
감사합니다. 냑에 귀인이 나셨네요.
많은이들에게 어느정도는 업데이트 고통에서 해방 시켜 주신듯…
3년 전
와우 와우 와우 "짝짝짝짝짝" 통렬무비 카타르시스입니다.
놀라운 플러그인 감사드립니다.
환상적인 플러그인입니다.
3년 전
역대급 자료입니다!! 너무 감사합니다!!
감사합니다.
[https://i.imgur.com/fvztGsa.jpeg]
존경스럽습니다. 와..