서버 이전 이후 페이지 내에 잘못된 이미지가 보이는 오류, 페이지가 하나의 이미지로만 나타나는 오류, 페이지에 자바스크립트 코드 혹은 CSS 내용만 출력되는 오류, 페이지 접속 대신 파일이 다운로드되는 오류가 있었다. 서버 이전을 도와주시고 계시는 강분도
님과 많은 이야기를 나누며 이런저런 작업을 해보았지만 별다른 진전이 없었다. 때문에 데이터를 모두 복구하고도 찝찝함이 가시지 않아 TNF
(Tatter Network Foundation Forum)에 질문을 해봤지만 정확한 원인은 알 수 없었다. 다만, TNF의 심민규
님과 daybreaker
님이 .htaccess 파일에 문제가 있는 것으로 보인다는 의견이 있었다.
.htaccess 파일에 대해서는 전혀 모르고, 이 파일에 대해 한동안 알아봤지만 어디가 어떻게 잘못됐고 또 어디를 어떻게 손봐야 할 지 몰라 갑갑하기만 했다. 그래서 이것저것 해보던 중 이상한 점을 발견했다.
.htaccess 파일의 내용을 보면, 텍스트큐브 1.7.6을 최초 설치 후 생성된 파일의 내용은 아래와 같았다 - 최초 설치라는 것은 기존 버전에서의 판올림이 아닌 '無'에서 처음 설치하는 것으로 .htaccess 파일 자체도 새로 생성된다.
#<ifmodule mod_url.c>
#CheckURL Off
#</ifmodule>
#SetEnv PRELOAD_CONFIG 1
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(cache)+/+(.+[^/])\.(cache|xml|txt|log)$ - [NC,F,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2 [L]
RewriteRule ^(.*)$ rewrite.php [L,QSA]
다행히 예전 서버에서 백업해둔 자료를 보니 기존 .htaccess 파일이 있어서 보니 아래와 같은 내용이었다.
#<ifmodule mod_url.c>
#CheckURL Off
#</ifmodule>
#SetEnv PRELOAD_CONFIG 1
RewriteEngine On
RewriteBase /
RewriteRule ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2 [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(cache)+/+(.+[^/])\.(cache|xml|txt|log)$ - [NC,F,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ rewrite.php [L,QSA]
새로 생성된 파일과 기존 파일을 비교해보니 주황색 부분의 위치가 달랐다 - 텍스트큐브 1.7.6 발표 공지
에서도 기본값은 위와 같다고 적혀 있다. 아마도 이 부분 때문에 파일 내에서 잘못된 자료로 작업하게 되고, 이로써 잘못된 화면을 출력하게 되지 않았을까 하는 생각에 아래 이미지와 같이 기존 자료의 내용을 적용하였다.
적용 후 여러 가지 작업을 해봤지만 예전과 같은 오류는 발생하지 않았고, 텍스트큐브가 설치된 폴더 내에 새로운 폴더를 만들어 파일을 복사해두어도(예를 들면, http://www.liberotown.com/test/test.png
) 접근할 수 있었다 - 오류가 있을 때에는 블로그 첫 페이지로 바로 연결됐다. 결국 .htaccess 파일 문제였고, 아마도 텍스트큐브 1.7.6 버전을 처음 설치할 때 해당 파일을 만드는 소스에 문제가 있는 것이 아닌가 하는 생각이 든다.
아무쪼록 지속적으로 곁에서 도와주신 우분투 한국 사용자 모임
의 강분도 님, TNF에서 결정적인 힌트를 주신 심민규, daybreaker 님께 감사의 말씀을 전합니다.
ⓒ 2008 by 방형준(才誠)
Posted by 재성才誠





