웹마스터 팁
RSS 게시판 업데이터 모듈이 SSL 부분적용시 동작하지 않는 문제 해결하기
2013.02.25 14:16
제가 몇차레 RSS 게시판 업데이터 모듈이 SSL 부분 적용시에는 동작하지 않는 문제로 질문을 헀지만 결론을 얻지 못하였습니다.
미적용 혹은 전체 적용시엔 잘 동작하나 부분 적용시엔 rssboard.cron.php를 직접 혹은 cron을 통해 실행시 success 문구가 뜨지 않고 mywebcron쪽의 경우 아예 해당 파일을 인식하지 못하는 증상이었고 SSL 도우미에서 여러 act값에 강제 SSL 적용을 해봤는데 해결이 안되더군요.
그러다가 그냥 아무 생각 없이 rssboard.cron.php를 열어서 define('__ZBXE__', true); 윗 부분에 define('__XE__', true); 를 추가해 주었더니 잘 동작합니다.
모듈이 나온지도 꽤 되다 보니 발생한 아주 간단한(..) 문제더군요.
댓글 25
-
몽실아빠
2013.02.25 16:52
-
몽실아빠
2013.02.25 16:56
크론을 실행하면 Success 문구는 뜹니다. 게시판으로 이동을 해보면 글 등록은 되어있지 않네요.
-
Gunmania
2013.02.25 17:01
혹시 코어 버전이 어떻게 되시나요? 1.5.3.3 이후라면 보안패치가 적용되면서 등록이 안될겁니다. 임시 방편으로 XE 1.5.3.2의 documents 모듈을 적용하셔야 합니다.
-
몽실아빠
2013.02.25 17:04
네. 1.5.4.2 에요 ㅜㅡ
-
용초딩
2013.02.28 19:43
1.5.3.2의 documents 모듈 적용을 어떻게 하나요??;; 초보라;;
-
J.R
2013.02.28 20:22
RSSBoard 모듈 사용시 최근 XE에서 글 추가가 안되시는 분들은 /modules/document/document.controller.php의 177 라인에 보면 insertDocument가 있습니다. 아래의 내용처럼 수정해주시면 잘 동작합니다.
function insertDocument($obj, $manual_inserted = false, $isRestore = false, $isLatest = true) {
if( !checkCSRF() && !$manual_inserted ) -
Gunmania
2013.02.28 20:25
1.7에선 구버전의 documents 모듈 적용해도 효과가 없었는데 1.7에서도 되려나요?
-
J.R
2013.02.28 20:27
해보지 않아서 모르겠지만, 최근 버젼의 XE의 CSRF 검사 함수가 레퍼러도 같이 검사하도록 패치되어서 생기는 문제입니다.
이것을 임의로 생성하여 삽입하도록 하면 문제가 없겠죠.
제가 적은건 수동 삽입시 CSRF 결과값을 Override하도록 한겁니다.
-
Gunmania
2013.02.28 20:42
음 자세히는 모르지만 모듈이 1.5.3.3 이후로 동작하지 않았던것 같은데 찾아보니 CSRF 검수 함수 코드가 바뀐건 1.5.3.7이네요. 그럼 정확히 말하면 1.5.3.6까지는 동작했었다가 되려나요.
-
boy2
2013.03.01 02:21
저 1.5.4.2 이런 에러 뜨네요ㅠ
Fatal error: Call to a member function begin() on a non-object in /home/hosting_users/xxxxx/www/modules/document/document.controller.phpon line 182
-
boy2
2013.03.01 02:28
아 저는
if( !checkCSRF() && !$manual_inserted )
빼고
function insertDocument($obj, $manual_inserted = false, $isRestore = false, $isLatest = true) {
만 적어주니까 되네요. 다른 문제가 발생할진 모르겠지만;
-
용초딩
2013.02.28 23:41
헐.. J.R님.. 단번에 해결되는군요......;; 추천!! 쾅!!
-
맥문동
2013.04.01 22:28
1.7버젼에서 사용하고 계신 분 문의 좀 드립니다.
1. rssboard.cron.php를 열어서 define('__ZBXE__', true); 윗 부분에 define('__XE__', true); 를 추가해 주었더니 잘 동작합니다.
2. RSSBoard 모듈 사용시 최근 XE에서 글 추가가 안되시는 분들은 /modules/document/document.controller.php의 177 라인에 보면 insertDocument가 있습니다. 아래의 내용처럼 수정해주시면 잘 동작합니다.
function insertDocument($obj, $manual_inserted = false, $isRestore = false, $isLatest = true) {
if( !checkCSRF() && !$manual_inserted )위 두가지만 수정하면 되는지요? 아니면 댓글 상에서 보면 구버젼(1.5.3.2 이하 버젼)의 document 폴더를 1.7버젼에 덮어쓰기를 해야 할 것으로 보이는데요..이 부분까지 수정을 해줘야 하는지 혹 1.7버젼에서도 사용중이신분 계시면 답변 좀 부탁드립니다.
-
Migguragi
2013.04.02 08:21
저는 위와같이 하니까 잘 되던데요...*^^*
-
맥문동
2013.04.02 09:33
migguragi 님
구버젼(1.5.3.2 이하 버젼)의 document 폴더를 1.7버젼에 덮어쓰기는 안 하시고 위의 1번, 2번만 수정하신건가요??
-
Migguragi
2013.04.02 12:50
제 버전은 1.7.3 이며 1,2번을 수정했습니다. 물어보시는게 맞는지 모르겠네요?
-
맥문동
2013.04.02 13:01
네 감사합니다. :)
-
맥문동
2013.04.15 16:25
1. 설치 환경
1) xe : 1.7.3.1 / 호스팅 카페24 / rss 게시판 업데이터 모듈 0.3 버젼 ( 클릭 )을 안내대로 파일 변경 및 무료웹크론사이트에 설정을 적용하였습니다.
2) rss를 받아오는 게시판의 스킨은 스케치북 스킨을 사용중입니다.
2. 본 페이지에서 알려주신 팁 2가지 변경
1) rssboard.cron.php를 열어서 define('__ZBXE__', true); 윗 부분에 define('__XE__', true); 를 추가
2) /modules/document/document.controller.php의 177 라인에 보면 insertDocument 수정
if( !checkCSRF() && !$manual_inserted )3. 문제점
1) 웹크론 사이트에서 설정을 하고 check를 해보면 "success" 로 표시되고 설정한 rss 사이트의 최신글을 정상적으로 설정한 게시판으로 가져옵니다.
2) 그러나 최초 1회만 가져오고 이후 새로운 최신글이 있지만 설정한 게시판으로 가져오지 않는 문제점이 계속 발생합니다.
혹시 해서 수동으로 rssboard.cron.php 를 직접 실행하여도 새로이 업데이트 된 게시물을 받아오지 못하는 증상이 발생합니다.
3) @Gunmania님 @Migguragi님 @J.R님 그리고 1.7.3.1 최신 xe버젼에서 rss 게시판 업데이트 모듈 정상적으로 사용하고 계신 분 있으시면 저와 같은 증상없이 잘 사용이 되시는지 확인 말씀 좀 부탁드리겠습니다.
그리고 정상적으로 사용중이신분 계시면 수정하신 파일 /modules/document/document.controller.php을 첨부파일로 부탁을 좀 드리고 싶습니다. ^^;;
-
J.R
2013.04.18 20:54
제가 보고한 버그 리포트는 현재 상태가 invaild로 되어 있지만 1.7버젼부터 제가 적은 팁의 변경된 코드가 이미 적용되었습니다.
__XE__변수 정의까지만 해주면 이상없이 돌아갑니다.
단! 이글루스의 경우 최근 서버 이전이후로 RSS를 수집하는 user-agent값도 체크하고 주기도 체크합니다.
다만 설치된 php 버젼에 따라 rssboard.cron.php를 돌릴때 user-agent값이 null로 들어가는 경우가 있기 때문에 rssboard.controller.php 내용중 65라인 주변을 다음과 같이 수정해주셔야 합니다.(user-agent값 추가)
// SimplePie Library 를 이용해 RSS 가져오기
$feed = new SimplePie();
$feed->force_feed();
$feed->set_feed_url($rssboard->rssurl);
$feed->enable_cache(false);
$feed->set_useragent("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)");
$feed->init();단 주의해야할점은 cron은 계속해서 수행하면서 최근 수집한 rss의 최종 갱신일이 업데이트 되었기때문이 직접 mysql 접속후 xe_rssboard 테이블의 update칼럼을 예전시간으로 돌려놔야 합니다.
또한 1.7업데이트 이후 files/cache 폴더를 깨끗이 삭제해야 충돌 문제를 피할수 있으니 확인하시기 바랍니다.
PS: 저는 1.7로 업데이트 이후 document모듈에 손을 대지 않았습니다.(배포본 그대로임)
-
맥문동
2013.04.19 11:57
안되는 구나하고 포기를 한 상태인데요...답변 감사합니다. J.R님 ^^
죄송하지만 답변 주신 부분에서 한가지만 문의드리겠습니다.
1. 캐쉬을 모두 삭제하고 기존에 등록된 rss정보 를 모두 삭제하고 이번에 다시 등록하였습니다.
이후 아래 그림처럼 테이블을 보면 regdate와 updatedate가 보이는데요.말씀해주신 "update칼럼을 예전시간으로 돌려놔야 합니다." 부분에 대해서 제가 잘 이해를 못하고 있습니다.
아래 그림에서 updatedate 날짜와 시간을 regdate날짜로 한번만 변경을 해주면 되는 것인지요.아니면 기존 등록된 rss 정보를 삭제하고 새로 생성하는 경우는 말씀하신 부분을 해 줄 필요는 없는 것인가요?
여러모로 귀찮게 해드려 정말로 죄송합니다. ^^;;
-
J.R
2013.04.19 19:57
아, 첨부그림을 확인하다가 보니 덧글 달면서 큰 실수를 했네요.
rssboard.controller.php의 125번째 라인이 아니라 65번째 라인부터입니다. 이미 수정하신부분은 원상 복귀하셔야 합니다.
(vi 실행하면서 무심결에 라인번호를 잘못봤네요. 내용 보면서 같은 부분은 생략하시고 다른부분만 넣으세요.)
regdate와 updatedate의 값은 년월일시분초 형태입니다.
ex) 2013년 4월 19일 오후 7시 53분 20초 -> 20130419215320
이런식으로 바꿔주시면 됩니다.
PS: 삭제후 등록하셔도 별 상관은 없습니디만, 현 시간 이전의 RSS 항목(글)은 못불러옵니다. 새로 등록한 시점부터 글을 수집하고 싶으시면 삭제후 등록하셔도 됩니다.
개인적으로는 updatedate값을 글 수집이 안되기 시작한 시점으로 수정하는것을 권장합니다.
PS2: 이렇게해도 안되면 rssboard모듈과는 관계없는 다른 알수 없는 문제(ex, php버젼문제등등)가 있으니 동일 서버환경에 XE를 다시 설치후 테스트해보는것을 권장합니다.
-
맥문동
2013.04.22 15:18
저의 경우는 말씀해 주신 대로 RSSBOARD모듈의 문제가 아닌 다른 문제에 원인이 있지 않나싶습니다.
혹시라도 문제해결이 된다면 다시 댓글 드리겠습니다.
귀중한 시간을 내어주시고 여러모로 신경을 써주신점 다시 한번 감사드립니다. ^^
-
제이디600
2013.04.22 21:00
저도 안되는데요. 혹시 성공하시면 공유 부탁드립니다.
-
제이디600
2013.05.27 16:38
이 모듈 이젠 더는 못쓰는건가요... 참 아쉽습니다.........
-
쟈마
2015.05.18 13:59
코어 1.7.13 버전 사용하고 있습니다.
ZBXE -> XE 로만 바꿔도 잘되네요..ㅎ
감사합니다.
크론을 실행하면 게시판에 글이 등록되어야 하는건가요 ? 몇개의 글이 등록된 블로그를 등록시켜 크론을 실행했는데 게시판에 글이 등록되지 않네요. 블로그는 네이버 블로그 이구요.