드루팔 폴더 이관에 관한 몇몇 요령
드루팔 폴더를 htdocs의 아래에서 보안상 그 바깥으로
이관하는 경우에 발생하는 몇몇 문제점에 관한 요령을 기록한다.
특히 sites/사이트명/files와 관련된 현상도 메모해 둔다.
- 이관할 때 vhosts 설정에서 기존 컨텐츠 폴더 위치를 alias화 한다.
예를 들어 Alias /drupal "/drupal 설치폴더/sites/해당도메인" 형태 등으로.
특히 files 아래의 여러 이미지나 파일 자료들은 이관할 때 애를 많이 먹으므로 Path/URL관계에 신중해야 한다.
복수 도메인을 하나의 드루팔 엔진에 동시 운영하는 경우에는 /drupal 설치폴더/files/특정폴더명으로 이관,
vhosts 설정에는 Alias /files "/drupal 설치폴더/files/특정폴더명"으로 지정하면 이관에 따른
이미지나 파일 자료들의 부작용이 적다.
- 이미지 같은 경우에는 기본적으로 files/images 아래에 위치하는 설정이 많지만,
다른 폴더로 이관한 경우에는 DB의 files 테이블에 있는 컨텐츠 path를 직접 수정하는 것도 한 방법.
- 중요 : 이관 작업을 하기 전에 관리자로 로그인한 후, 그 세션을 유지한 채로
이관 작업을 수행하면 나중에 테마나 모듈 설정창이 열려서 저절로 문제가 수정될 가능성이 높아진다.
특히 관리자 권한이 있는 경우, /update.php 를 통해서 DB스키마를 업그레이드, 문제를 해결할 수도 있다.
언뜻 보면 폴더 이관과 전혀 상관없어 보이지만, 몇몇 사례로 효과를 보았다(그 이유는 조사 중).
- DB의 system과 variable 테이블의 몇몇 폴더 정보를 수정하는 것도 좋다.
특히 system 테이블의 modules/themes 패스를 지정한 곳이 엉터리인 경우
Page Not Found (페이지를 찾을 수가 없습니다) 에러가 나와서 곤혹스럽다.
물론 관리자 로그인을 미리 안해둔 경우라면 더 애먹는다. 이때 DB를 손보자.
DB를 건드리기 전에 백업을 해 두는 것이 좋겠다.
- 복수개의 사이트를 하나의 드루팔 엔진 아래(보통 sites/해당도메인)에 제대로 이관되지 않는다면,
해당 사이트의 settings.php 에 있는 $base_url을
'http://드루팔 설치도메인/drupal 설치폴더/sites/해당도메인';
으로 지정하면 많은 문제가 해결될 것이다. 특히 각 도메인별 files, modules, themes가 개별 인식된다.
- 각 도메인별 테마 폴더에 해당 폴더가 없는 것은 아닌지 재확인해 보자.
각 도메인별 테마 폴더는 drupal 설치폴더/sites/해당도메인/themes 폴더이다.
각 도메인별 테마 폴더가 없는 경우에는 drupal 설치폴더/sites/all/themes 폴더에라도 있어야 한다.
- 특정 노드를 로딩해서 로그인 창이 보이면 그곳에 관리자로 로그인하자.
그런 다음 사이트 정보 항목에서 시작 페이지를 적절히 수정하는 것이 좋다.
이 조치가 의외로 많은 사이트에서 이관 문제를 해결했었다.


댓글
2 comments posted드루팔을 이용한 복수 도메인 운영에 관한 자료는 아래 주소에 모여 있습니다(영문).
http://drupal.org/node/43816
files 폴더 아래에 있는 컨텐츠들의 패스 문제를 이관후에 쉽게 해결하지 못하는 경우에는,
(최후의 수단으로) DB의 files 테이블나 각 컨텐츠의 해당 테이블에 있는 패스 정보를 수정해 주세요.
예를 들어 files.filepath 항목을 "files/images/abc.jpg"를
"images/abc.jpg"로 모두 일괄 변환하려면 아래 SQL를 실행해 보세요. (주의 - 작업 전 백업 바람)
update files set filepath=trim(LEADING 'files/' FROM filepath);