그누보드 버전 업데이트 관리기능 > 그누보드5 플러그인

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

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

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

첨부파일

gnuboard5_update.zip (26.4K) 161회 다운로드 2022-06-29 16:13:41
gnuboard5_update_220816.zip (43.2K) 27회 다운로드 2022-08-16 12:00:34
테스트한 버전5.5.8.2
호환 가능 버전5.4.14 이상

본문

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. 디스크 용량이 실제와 다르게 표시되는 문제

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

 

 

 

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

추천
68

댓글 전체

녹두탐님 질문하나 있습니다.
설치후 업데이트가 많이 밀려있는데 그냥 최신버전으로 바로 업데이트 해되 되나요?
아니면 차근차근 하나씩 하나씩 최신버전까지 업데이트 해야하나요?
과유불급이지 않을까요?
이것은 하나의 도구일 뿐 본질의 업데이트 파일은 SIR 에서 제공하는데...
질문의 대상이 잘 못 된 듯 보입니다 ^^;;;
역시 그렇군요..ㅠㅠ;
답변 감사합니다
혹시 몰라 차근차근 업데이트 중입니다.
이넘의 게으름이 일을 엄청 많이 만드네요 ㅠㅠ;;

ps  녹두탐님 덕분에 업데이트 편하게 해서 좋네요
오오~ 정말 유용한 플러그인 감사드려요!! ^-^
추천을 한 번밖에 누르지 못하는게 아쉽네요~ ㅠㅠ
그럼 비 조심하시고 좋은 저녁 되세요 :)
왜 이런 기능이 없을까?라고 생각했었는데 드디어 나타났네요.
저도 추앙~ 합니다. 삭제하지 말아주세요. 기능을 익힌 후 적용해 보겠습니다.
대박입니다.^^ 귀챠니즘에서 벗어날 수 있는 소중한 자료 감사합니다.
sftp가 안보이시는 분(ssh2 모듈이 설치안되신 분)들은 참고하세용.
redhat7(centos7)은 yum install libssh2 php-pecl-ssh2; systemctl restart httpd
redhat8(rockyLinux8)은 dnf install php-ssh2; systemctl restart httpd

ssh port가 기본 22번이 아니신분들은
update폴더내의 update.lib.php 104라인 포트를 사용중인 ssh port로 변경하시면 됩니다.
초짜의 개고생을 웃음으로 바꿔주는,
내가 방금 뭐 했는지도 모르는 초단기 기억상실증을 치료해주는...
엄지 손가락이 자동으로 올라갈 수 밖에 없네요.
"따봉~~"
감사합니다.
v5.5.8.1.1 버전 파일 다운로드 완료

업데이트 성공

업데이트 실패

: 백업파일 생성이 실패했습니다.

이렇게 나오는데 어떻게 해야 하나요? 설정이 뭐가 잘못되어서 그런걸까요?
data 폴더의 권한이 707이 맞는지 확인 부탁드립니다.
만약 권한도 정상이라면 경로오류일 가능성이 높으므로 테스트하고 수정하도록 하겠습니다 :)
업데이트가 계속 실패되어 테스트해보니,
.php 파일들의 권한이 777은되어야 업데이트가 되는것 같습니다.
모든 파일들의 권한을 777로 변경하면 되긴할듯한데, 약간 조심스러운 부분도 있네요.
아무튼 이런 좋은 플러그인 공유해주셔. 매우 감사합니다.^^
그누보드 5.4.6 버전부터 영카트가 포함되어 배포되기 때문에 정상적으로 적용됩니다 :)
https://github.com/gnuboard/gnuboard5/releases/tag/5.4.6
현재 그누보드 버전이 v5.4.15 ~ v5.5.8.1.1 사이에 있어야 지원 가능합니다.
(최신 기준 30개 버전)

getApiCurlResult 함수 $url 변수에 per_page를 추가해서 지원 버전 갯수를 늘릴 수 있지만, v5.4.7 버전 미만으로 사용은 권장하지 않습니다.
업데이트 시, 커스텀한 파일 목록을 확인하고 업데이트를 진행 할 수 있습니다.
그누보드 Core 부분을 커스텀하신 것이라면 수동으로 체크하셔야 합니다.
좋은 플러그인입니다.^^ 코드 스타일도 아주 정통방식으로 고수의 향기가 느껴집니다. ㅎㅎ
우선 간단하게 필요한 부분이 있을것 같습니다.

1. 백업 디렉터리 파일을 수동 삭제할 수 있도록. (체크박스 삭제 - 용량이 많이 쌓이네요.)

2. 로그 디렉터리 파일을 삭제할 수 있도록.  (체크박스 삭제)

3. 버전 디렉터리 파일을 삭제할 수 있도록.  (체크박스 삭제 - 용량이 많이 쌓이네요.)

4. 업데이트시 커스텀된 파일?이 있다면, 빨강색으로 나타나는데, 업데이트 할 파일을 차라리 체크박스로 체크한 파일들만 덮어씌우는 형태는 어떨지? 입니다. (전체선택 또는 부분 체크 선택)

5. 업데이트 하는 부분에, 라디오버튼으로 DB업데이트 사용함, 하지않음 2개의 타입을 추가하여, 버전 업데이트시 DB업데이트를 수동으로 해야하는 부분을 줄여줄 수도 있을듯합니다. /adm/dbupgrade.php 파일 참고.
안녕하세요 그누위즈님.

지속적으로 관심을 가져주셔서 감사하다는 말씀 전하며,
제안해주신 의견들은 긍정적으로 검토한 후 반영하도록 하겠습니다.
(특히 파일 삭제기능)

좋은 의견 주셔서 감사합니다 :)
녹두탐 님 너무 좋은 플러그인 공유해서 감사합니다.

저는 아래와 같은 문제가 발생했습니다.

data 폴더 권한 777 인데  패스워드 입력하고 업데이트 하면 "디렉토리를 생성하는데 실패했습니다. " 라는 안내 멘트 뜨네요.


한가지만 바라는 점 있다면 "지금업데이트" 클릭했을때 팝업창에서  패스워드 입력부분에 **** 처리 되었으면 좋겟습니다. 관리자 비밀번호  입력은 민감한 부분이라서 .
안녕하세요 GnuBoy님

말씀해주신 권한 문제에 대해서 꼼꼼하게 테스트&체크해서 작업하고, 패스워드 부분도 반영하도로 하겠습니다. 감사합니다 :)
좋은 자료 정말 감사드립니다. 저의 경우 업데이트 메뉴를 선택하면 공백화면이 나오는데 혹시 어디를 수정해야 할지 알 수 있을까요?
현재 그누보드 버전은 5.5.7.5 를 사용하고 있습니다.
(이미지를 하나밖에 올리지 못해 나머지 하나는 링크로 올립니다.)
https://drive.google.com/file/d/1WPNX9oChQ2IS75TmqrTBfXrtcLnPclhM/view?usp=sharing

안녕하세요 나빛님 :)

500 error의 경우 다양한 원인이 있어서 해당 이미지로는 정확하게 파악이 힘듭니다.. ㅠㅠ
아파치 에러로그를 확인하는 것이 정확하게 파악할 수 있습니다.
(그리고 예상되는 부분은 curl모듈이 정상적으로 사용되고 있는지 확인하는 것입니다.)
확인결과 php-fpm 패키지에 문제가 있었던 것으로 보입니다. (curl 은 정상 동작 중이었어요.) php-fpm 패키지 재설치 후 깨끗하게 완료되었습니다. 도움 주셔서 다시 한번 깊은 감사드립니다.
영카트부분만 제외하고 그누보드를 일일이 수동으로 업데이트해오다가 통합되고 나서부터는 업데이트 중단해었는데요. 녹두탐님이 이런 대박 기능을 공유해주신 것을 보니 걍 통합버전으로 업데이트하고 싶은 마음이 마구마구 솟아나네요.^^
녹두탐님 같은 인류애가 넘치는 분이 계시기에 그누보드가 계속 발전하는 가 봅니다.^^
그누도 이렇게 간단히 되다니 놀랍네요. 패치와 데이터베이스까지 업그레이드 했습니다.

그런데 중간에 여러 패치를 건너 뛰고 이렇게 한번에도 가능한건지?
아니면 매번 이렇게 관리자 모드에서 수동으로 해준 경우만 제대로 되는 건지는 모르겠네요.

관리자님이 포상을 내려야 할 플러그인이 아닐까요?
대단히 감사합니다.
1. 그누보드는 5453을 사용합니다.

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. 이 플러그인을 사용하더라도 모든 패치를 순차적으로 해주어야 하나요?

2. 그럼 순차적으로 패치 해야 할게 수십개 인 경우는, 그냥 data 폴더만 남기고 삭제하고 그누 최신 설치한 후에 이 플러그인을 사용하는게 낫겠는데요?
안녕하세요 해피메이커님 :)

플러그인에 관심 가져주셔서 감사한 말씀드리며, 여러 질문에 대해 정리해서 답변 드리겠습니다.


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 업로드 버전을 이용해주시기 바랍니다.


더 궁금하신 내용이 있으시면 댓글 남겨주시길 바랍니다. 감사합니다 :)
기존 버전 삭제하고 2022년 8월 16일  버전으로 교체 작업완료했어요.

2022.8.16버전으로 적용후 아래 와 같은 에러가 뜨네요. 출력순서대로 정리했어요.

1. 초기 적용시 "/update 디렉토리를 생성하는데 실패했습니다."  나와서 수동으로 폴더 만들어줬는데 (해당 에러는  수동으로 필요한 폴더 생성해서 해결.)

2. Error : 압축해제에 실패했습니다. ( 지금 업데이트 클릭하면 해당 에러 뜨네요. )

2번에서 다음 단게 넘어 못감..ㅠㅠㅠ
전체 1
그누보드5 플러그인 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIR SOFT