묻고답하기
썸네일 0바이트 해결방법좀..
2015.03.09 12:11
os환경은 윈도우 7
php버전은 5.2.10
제로보드 버전은 1.7.3입니다.
특별하게 환경이 변한것은 없습니다.
제로보드 업데이트도 하지 않았습니다.
2차도메인과 병행하여 사용하다가 2차도메인을 제거하였더니
2차도메인으로 올렸던 이미지들이 엑박이 뜨더니 경로를 다시 잡아주어 정상적으로 보이게되었는데
이후 메인페이지의 썸네일 사진이 이미지없음으로 뜨더니 썸네일 폴더에서 이미지 용량을 확인하니
0바이트 이미지를 가져오지 못하고 있습니다.
지금까지 해본걸로는 소스수정이 없어서 소스는 건들지 않았는데
캐시용량이 꽉차서 생성되지 않을수 있다고해서 캐시를 삭제하고
이전 도메인을 살려보기도 했고 DB에서 2차도메인을 정식도메인으로
다 변경도 해보았는데 썸네일은 이미지 없음으로 뜨고 있습니다.
어떤분이 gd라이브러리 관련하여 말하길래 확인해본결과
현재 gd라이브러니는 info로 찍어보니 사용가능함으로 뜨는데
썸네일은 왜 만들어지지 않는것일까요?
아시는분이 계신다면 꼭꼭 알려주시면 감사드립니다.
벌써 2달째 해메고 있습니다 ㅠ.ㅠ
댓글 20
-
BJ람보
2015.03.09 12:35
-
BJ람보
2015.03.09 12:35
그리고 다시 섬네일생성할 게시글의 게시글을 수정 -> 저장
-
헌팅
2015.03.09 12:50
BJ람보님이 말씀해주신데로 해봤지만 여전히 썸네일은 0바이트로 만들어집니다. ㅜ.ㅜ
-
노에르
2015.03.09 13:02
files db 테이블에서도 도메인을 수정해주셔야 합니다.
-
헌팅
2015.03.09 13:10
확인해보니 파일경로는 ./files/attach/images/ 형식으로 들어가고 있습니다. 별도의 도메인은 들어가있지 않습니다.
-
노에르
2015.03.09 13:21
그럼 썸네일이 첨부된 게시글을 수정누르신 후에 저장 눌러보세요
-
헌팅
2015.03.09 13:32
썸네일 등록하려는 게시판의 글을 수정후 등록을 눌러도 메인페이지의 이미지는 이미지없음으로 나오지 않습니다 ㅠ.ㅠ
-
노에르
2015.03.09 13:35
그럼 방법이 없습니다.
용량 문제는 체크해보셨을 테니.. 아닐테고..
./modules/document/document.item.php
파일 보시면 getThumbnail 함수가 있는데
어디서 리턴되는지 하나하나 debugPrint()로 찍어보는 수밖에 없을 듯..
저는 위와같이 게시물 수정하니 해결했었습니다..(...)
-
헌팅
2015.03.09 13:41
용량체크는 가장 먼저 해보았습니다. 제가 PHP초보라그러는데 debugprint()를 찍어보는 방법이 echo처럼 찍어보면 되는건가요?
-
노에르
2015.03.09 13:45
xe에서 기본적으로 디버깅을 지원합니다.
xe경로/config/config.user.inc.php 파일이 없으면 아래와 같이 내용을 입력하여 생성하시면
<?php
define('__DEBUG__', 1);
define('__DEBUG_OUTPUT__', 1);
define('__DEBUG_PROTECT__', 0);
?>XE경로/files/_debug_message.php 가 생성됩니다.
물론 debugPrint()로 찍을 때 마다죠..
즉 document.item.php에서 debugPrint(출력할 값);으로 중간 중간 삽입해두시면 됩니다.
debugPrint는 print_r()과 같이 출력해줍니다.
-
헌팅
2015.03.09 15:21
찍어보기는 했지만 멀 봐야 할지를 모르겠네요.
debugPrint($width);
debugPrint($config);
debugPrint($thumbnail_url);
위에 부분만 찍어봤는데 아래처럼 경로가 조금씩 다르면서 반복적으로 나옵니다.
<?php
/*========================================
[2015-03-09 15:23:32 document.item.php:738] - mem(9.79MB)
160
----------------------------------------*/
?><?php
/*========================================
[2015-03-09 15:23:32 document.item.php:759] - mem(9.79MB)
홈페이지 주소/files/cache/thumbnails/217/041/160x100.crop.jpg
----------------------------------------*/?>
-
노에르
2015.03.09 15:32
보시면 return 이라고 있는 부분들이 있어요
파일핸들러로 이미지 생성(썸네일생성)이 되어야 하는데 그전에 리턴되는 건지
체크를 해보셔야 해요 스텝별로..
-
헌팅
2015.03.09 15:38
return이라고 있는 부분은 document.item.php <---에서 말씀하시는거죠? 경험을 해보지 않아서 많이 미숙하네요 ㅠ.ㅠ
-
헌팅
2015.03.09 16:13
debugPrint($thumbnail_file); <--- 여기 부분을 찍으면 아래의 형식처럼 나옵니다.
if(filesize($thumbnail_file)<1) return false;
else return $thumbnail_url;<?php
/*========================================
[2015-03-09 16:19:03 document.item.php:757] - mem(9.79MB)
files/cache/thumbnails/217/041/160x100.crop.jpg
----------------------------------------*/
?><?php
/*========================================
[2015-03-09 16:19:03 document.item.php:757] - mem(9.87MB)
files/cache/thumbnails/180/041/220x200.crop.jpg
----------------------------------------*/그러나 debugPrint()를 else return $thumbnail_url; 밑으로 함수를 넣어서 찍어보니 _debug_message.php 아무것도 나오지 않습니다. 안나오는게 정상인가요?
-
노에르
2015.03.10 02:08
음.. 정상이라기 보다 어디가 문제인지 찾아보는 겁니다.
기본적으로 함수의 흐름을 이해하시면 어디서 결과값이 리턴되지 않아서 문제가 발생하는 지 알 수 있죠..
-
헌팅
2015.03.09 13:14
다른 윈도우7 서버에 옴겨보았는데에도 같은 증상이네요..
-
휘즈
2015.03.09 14:14
0바이트 파일이 생성된다는 것이 문제인 것 같은데요.
잘못된 파일인 것 같고, 접근이 안될 것 같은데요. 삭제도 안되고..
섬네일은 삭제해도 새로 생성되니, 섬네일을 삭제 후 재생성 해보세요.
근본적인 해결책은 os 쪽에서 해결을 해야 할 것 같고(os를 바꾸던가 하는)
xe 쪽에서는 해결 방법이 없을 것 같습니다.
-
헌팅
2015.03.09 14:46
삭제를 해보기도 했습니다. 재생성은되는데 0바이트로 생성됩니다.
-
휘즈
2015.03.09 17:19
디렉토리를 하나 만든 후(예 /home/Image)
php.ini 파일에서 File Uploads 설정을 디폴트로 /tmp 이렇게 되어 있을텐데
upload_tmp_dir = /home/Image로 수정
-
헌팅
2015.03.09 18:07
휘즈님이 말씀하신데로 만들어서 경로도 변경해보았지만 여전히 이미지 없음으로 발생되고 있습니다. 도데체 어디가 문제인지 모르겠네요 ㅠ.ㅠ
document.item.php
843번째줄..
list($_w, $_h, $_t, $_a) = getimagesize($tmp_file);
으로 수정
844번째줄
if($_w<$width && $_h<$height) continue;
으로 수정