[개인기록용] xe 1.11 에서 rhymix 2.1.15 로 업그레이드
오래전 만든 사이트인데,
글쓰기 에디터 쪽에서 부족함+문제를 느껴서 업그레이드를 시도하였습니다.
아직 세팅이 완전하게 끝나진 않았지만, 큰 고비는 넘겼기에 일단 여기까지 기록으로 남깁니다.
1. AWS 가상서버 -> 스냅샷 생성 (문제시 백업 아주 편함)
2. 우분투 서버 20.04 -> 이것도 이참에 22.04 로 업그레이드
3. XE 1.11.x? -> rhymix 2.1.15
4. nginx : 1.18.0
5. php : 5.6 -> 8.3
6. db : mariaDB 10.6.16, mysql? mysqli?
업그레이드 가이드
https://rhymix.org/manual/introduction/xe-upgrade
첫날은 마구잡이로 시도했다가,
문제가 왜 나는지도 모르고 당황하여 후퇴. 복원
둘째날은 마음을 단단히 먹고 도전.
고비1 :
에러메시지를 볼 수 있어야 함. (에러는 대부분 php 버전 차이로 인한 문법오류.)
콘솔에서 sudo vi /var/log/nginx/error.log 또는 tail 명령어로 최근 에러가 어디서 나는지 확인.
하지만 그보다 좋은 건
sudo vi /etc/php/8.3/fpm/php.ini
display_errors = On
display_startup_errors = On
위에 것만 On 해도 될 것 같긴 한데, 여튼 이거 켜 놓으면 로그 볼 것도 없이
바로바로 에러 표시되니 시간 단축됨. *다 끝나면 Off 해두는것이 보안상 좋음.
sudo systemctl reload php8.3-fpm // 이거 꼭 해야 함.
sudo systemctl reload nginx
고비2 :
에러가 나도 해결을 못하면 말짱 황인데...
한두개라면 검색하면서 도전해보는게 좋지만,
이건 그런 수준이 아님.
그럼에도 도전할 수 있었던 것은 chatgpt 가 있기 때문.
Error 메시지 + 해당 코드 line(상황에 따라서 앞뒤 몇줄 더) 넣으면 95%는 해결책을 내어줌.
물론 그걸 이해하고, 처리할 수 있는가는 또 다른 문제
- 주로 발생한 문제 : Null(객체생성), php 구버전용 함수, datatype "" '' 빠진 것 또는 array
- chatgpt 가 헷갈려한 문제 : html 에 php 코드 그냥 알려줘서 { } 헷갈렸던 일
위 고비 넘기면 홈페이지 / 관리자 페이지까지 접근 가능
고비3 :
짧은 주소 문제 (이건 아직 해결 못하고 범용 짧은주소?로 일단 타협)
nginx 는 이게 계속 말썽인듯. 예전에도 rewrite 때문에 고생했음.
예전거 다 지우고, 거꾸로 하나씩 추가하는 중.
고비4 : ckeditor
이건 개인적인 문제임. 예전에 ckeditor 에 config.js 를 수정하는 방식으로 플러그인을 추가했었는데
그게 문제가 되어서 ckeditor 가 로딩되지 않음.
일단 여기까지 고비를 넘기니,
눈에 띄는 문제는 없는 것 같습니다.
아직 해결 안된 것은
1. 짧은 주소
2. DEBUG 에 올라온 수십~수백개가의 에러(Warning) . 외면하고 싶다...
3. 관리자 페이지에서 애드온 끄려고 해도 안꺼지는 것. Variable addon for column addon is not set
댓글 12
고비4 : ckeditor 부분은 아래 링크에서 확인
https://xetown.com/questions/1827735
짧은 주소 문제는...
-----------------
뭐지??
짧은 주소 사용
ㄴ 사용하지 않음 ㄴXE와 호환되는 주소 형태만 사용 ㄴ모든 주소 형태를 사용
'XE와 호환되는 주소 형태만 사용'으로 바꿨더니 저절로? 반쯤 해결됐네요??
어제는 분명 안됐던 것 같은데??
가능성1 : 원래 어제 삽질 반복하다 해결되었는데 적용이 덜 되었거나, 아니면 눈치를 못챈 것일 수 있음.
가능성2 : 불필요한 코어 파일 일괄정리 과정에서 해결된 것일 수 있음.
해결된 부분 : 브라우저 주소창에는 짧은 주소로 잘 나옴 https://allcalc.org/41381
해결안된 부분 : 게시판-게시물 상단-주소복사에는 조금 긴 주소로 나옴 https://allcalc.org:443/board_free2015/41381
server {
listen 80;
server_name allcalc.org www.allcalc.org;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name allcalc.org;
root /home/xe;
index index.php index.html index.htm index.nginx-debian.html;
ssl_certificate (생략);
ssl_certificate_key (생략);
include /etc/nginx/sites-available/xe_sitemap_rewrite.conf;
client_max_body_size 10M;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
# Rhymix 설정 인클루드
include snippets/rhymix.conf;
}
해결이 된 줄 알았는데,
모바일로 접속하니 PC에서 나타났던 문제 (500 리다이렉션 너무 많음) 가 나타났습니다.
다시 설정가서
ㄴ모든 주소 형태를 사용
옵션으로 바꿨다가, php 에러난거 해결하고
다시 설정으로 돌아와서
ㄴXE와 호환되는 주소 형태만 사용
으로 바꾸니까. 잘 됩니다.
* 브라우저 쿠키 삭제? 이게 진짜 영향이 줬을지도?
6월 22일
모바일 - 짧은 주소 : 너무 많은 리다이렉션 문제 재발생 -> 해결
네이버 게시판에 짧은 주소 링크를 걸었는데,
PC에서는 짧은 주소 문제가 없는데
모바일로 접근하니 짧은 주소 문제가 또 발생하더군요.
아무래도 rewrite 쪽을 봐야할 것 같은데...
어떻게 손을 봐야할지 감이 안오는 상황.
/var/log/nginx/error.log 를 보니 에러가 어마어마하게 쌓여 있네요.
tail 명령으로 마지막 로그만 보면서
하나 수정하고 -> 모바일 다시 불러오기 -> 에러 생긴거 다시 수정하고
하다보니
(오잉?) 리다이렉션 문제가 해결 되었습니다.
에러가 발생한 파일은
modules/board/m.skins/sketchbook5/_list_webzine.html
내용은 비슷한데 이런 식입니다.
#0 /home/xe/files/cache/template/modules/board/m.skins/sketchbook5/_list_webzine.html.compiled.php(121): in_array()
#1 /home/xe/common/framework/Template.php(471): include()
#2 /home/xe/common/framework/Template.php(375): Rhymix\Framework\Template->execute()
#3 /home/xe/files/cache/template/modules/board/m.skins/sketchbook5/list.html.compiled.php(161): Rhymix\Framework\Template->compile()
#4 /home/xe/common/framework/Template.php(471): include()
#5 /home/xe/common/framework/Template.php(375): Rhymix\Framework\Template->execute()
#6 /home/xe/classes/display/HTMLDisplayHandler.php(98): Rhymix\Framework\Template->compile()
#7 /home/xe/classes/display/DisplayHandler.class.php(67): HTMLDisplayHandler->toDoc()
#8 /home/xe/classes/module/ModuleHandler.class.php(1229): DisplayHandler->printContent()
#9 /home/xe/index.php(60):" while reading response header from upstream, client: 183.105.205.197, server: allcalc.org, request: "GET /31975 HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php8.3-fpm.sock:", host: "allcalc.org", referrer: "https://m.kin.naver.com/mobile/qna/detail.nhn?d1Id=11&dirId=1118&docId=471399789&answerNo=1&addQnaNo=5888006"
관리자 페이지에서 애드온 관련 오류
https://xetown.com/questions/1827835
이 두가지로 해결되었습니다.
감사합니다
문제 발견
사이트맵이 작동하지 않는 듯 합니다.
A. 기존 사용 모듈
사이트맵 --- 사이트맵 생성과 검색 색인을 관리합니다. --- 1.3 --- 즈베즈다 --- ./modules/sitemap/
B. 주소 설정
RewriteRule ^sitemap([0-9]*)\.xml$ ./index.php?module=sitemap&act=sitemap&page=$1 [L]
ㄴ 이건 아파치 용
-> nginx 용으로 아래와 같이 변경
# xe_sitemap_module rewrite apply
include /etc/nginx/sites-available/xe_sitemap_rewrite.conf;
# Sitemap module for Google
rewrite ^/sitemap([0-9]*).xml$ /./index.php?module=sitemap&act=sitemap&page=$1 last;
C. 관리자 페이지
-> 핑 보내기 : [사이트맵 등록] 누르면 -> "등록했습니다" 나옴. 이상없어 보임
-> 다운로드 ▽ 눌러보면 목록에 아무것도 표시 안됨.
-> URL 눌러보면 -> 404 Not Found. 요청한 페이지를 찾을 수 없습니다. 사이트 관리자에게 문의해 주세요.
-> 긴주소 가보면 https://allcalc.org/index.php?module=sitemap&act=sitemap&page=$1 맞는지 모르겠지만
1~10까지 다 똑같음.
D. 구글 Search Console
업데이트일(6월17일) 이후로 문제가 발생하여 해결되지 않는 듯 합니다.
종합한 결론은
1. 리다이렉션(rewrite) 가 제대로 되지 않고 있다. 404
2. 사이트맵도 제대로 생성되지 않고 있다.
두가지 문제가 복합적으로 나타나는 듯 합니다.
A. 기존 모듈 삭제함
주소 rewrite 설정 제거
B. 새로운 모듈 업로드
https://xetown.com/download/324406
ㄴ 사이트맵 Lite 모듈
이번엔 쉬운설치 해 봄.
파일 다운로드 -> ftp 업로드 -> 압축풀고 -> chown www-data 해주고 하는 과정없이 딸깍으로 해결되니 좋음.
(앞으로 없어지는 분위기로 확인되는데 아쉬움.)
C. 설정
사이트맵 파일 경로 : 첫번째 옵션에서 퍼미션 에러 나옴.
-> /home/xe 가 소유권이 여전히 root 에게 있어서 www-data 로 변경하니 해결됨
---> 사이트맵 페이지 접속 정상 확인!!
문서 포함 - 포함 갯수 : 0 (default)
0으로 하고 xml 을 보니 선택한 게시판 목록만 올라와 있음.
이걸 몇으로 하는게 좋은지는 모르겠으나, 0은 아닌 것 같아서 일단 100으로 함.
갱신되는 주기 사이에 "생성 & 갱신"되는 글의 갯수를 충분히 포함할 정도면 적당한건가?
그럼 100이면 충분하단 건데... 그래도 1000으로 하는게 나을 듯. 무리가 되지 않으면.
---> 사이트맵은 정상 생성됨. 확인!!!
D. Google Search Console
검색엔진 자동 제출 옵션이 있긴 한데,
그래도 문제가 있었으니까 사이트맵 주소를 수동 제출 해봄.
---> 업로드(상태) : 성공!
rhymix-sketchbook (Sketchbook for rhymix)을 올려서 사용하였습니다.
https://github.com/rhymix/rhymix-sketchbook
모바일 스킨은 따로 없는 것 같으니
'PC와 동일한 반응형 스킨' 으로 설정하였습니다.
처음부터 했어야 했는데...
저도 xe시절 스케치북 레이아웃을 사용하고 있어서 라이믹스용으로 바꾸기는 해야 하는데
레이아웃을 바꾸면 게시판 스킨도 바꿔야 깔끔한데
게시판 설정을 다시 할 자신이 없네요 ㅎㅎ
게시판 스킨 설정은 처음부터 다시 해줘야하겠죠??
별개의 스킨이니 다시 해주는게 맞겠죠?
Sketchbook5 기존 설정을 가져올 수 있는지는 알지 못합니다.
레이아웃 + 스킨을 OrangeDay 로 바꿨습니다.
신세계가 되었네요.
Table(css) 쪽에 약간 문제가 있지만
완전만족하고 있습니다.
진즉 바꿀 것을...