Drupal Handbook
1. Drupal 핸드북 ¶Drupal(이하 드루팔) 핸드북들은 드루팔에 관심이 있는 사람들과 무경험자, 경험이 있는 드루팔 관리자, 드루팔 사용자들과 개발자들에게 완벽한 참고자료를 제공합니다.
각 핸드북의 원본은 ![]() 이 위키 페이지는 드루팔 사이트의 인터페이스를 따라서 만들도록 합니다. 1.1. 드루팔에 관하여 ¶
드루팔은 웹사이트에서 여러가지 내용을 개인적으로 혹은 여러명의 커뮤니티의 사용자에 의해 쉽게 출판, 관리, 구성할 수 있도록 해주는 소프트웨어입니다. 수만명의 사람들과 단체들이 다음의 목적으로 드루팔을 사용하고 있습니다.
드루팔은 GPL 라이센스를 따르는 오픈소스 소프트웨어이며, 수천의 커뮤니티 사용자들과 개발자들에 의해 개발되고 유지됩니다. 드루팔은 자유롭게 받아서 쓸 수 있습니다. 만약 드루팔이 더 많은 것을 해주길 원한다면, 여러분들의 요구에 맞도록 드루팔을 확장하고 재개발하도록 우리와 함께 일해주십시오. 1.1.1. Drupal.org ReadMe First ¶커뮤니티에 오신것을 환영합니다.
drupal.org 커뮤니티는 개발자부터 초심자까지, 전문가들부터 취미가들까지, 기여자부터 비기여자까지 모든 사람들의 다양성을 약속합니다. 드루팔을 기반으로 사용함으로써 여러분들은 유연한 웹 사이트를 구축할 수 있습니다. 모든 강력한 도구들이 그렇듯이 여러분들이 얻기 원하는 것은 여러분들이 어떻게 사용하는지에 달려있습니다. 기본적인 드루팔 설치로 PHP를 모르더라도 효율적인 데이타베이스 처리를 하는 웹사이트를 구축할 수 있습니다. 만약 여러분이 기본적인 설치로 제공되는 것들 이상의 것을 원하거나, 제공된 모듈들보다 더 안정적인 것을 원한다면, PHP와 데이타베이스(기본적으로는 MySQL)에 익숙해질 필요가 있으며, 그것들을 배울 의지가 있어야 하고, 서비스에 대한 무엇인가를 감수할 준비가 되어있어야 합니다. 만약 여러분들이 개발에 익숙하다면, 드루팔의 API를 배우고 개발자 가이드를 읽는데 시간을 소비하길 원할 것입니다. 메일 리스트와 아카이브들 또한 개발에 대한 정보를 얻을 수 있는 좋은 정보원입니다. 모든 커뮤니티가 그러하듯, 맴버들중에는 초심자들에게 도움이 되는 일을 하는 사람이 있는 반면, 여러 접근과 관점을 통해 원기 왕성한 많은 토론자들도 있으며, 때때로 과열되어 싸움이 되는 경우(트롤)가 있기도 합니다. 모두에게 더 기쁘고 생산적인 경험들을 제공하는 포럼을 만들기 위해서는, 포럼에 글을 올리는 팁들을 잘 읽고 마음에 새기도록 하십시오. 오픈소스 커뮤니티들은 모든 사람들이 참여하고, 도움을 줄 때 최상으로 운영됩니다. 핸드북들은 어떤 사람들이라도 기여할 수 있는 방법들에 대해 기록합니다. 설치를 하고 여러분들의 사이트를 설정하기 시작하면, 여러분들은 예전에 갖고 있던 기본적인 궁금증들을 갖고 있는 사람들을 도우면서 쉽게 도움을 줄 수 있습니다. 여러분들이 Support 포럼에서 도움을 주거나 문서를 쓰고 재구성하거나, 패치를 만들거나 하는 어떠한 도움이라도 환영합니다. 1.1.1.1. 하우투: 드루팔 커뮤니티의 변경사항 제정 ¶많은 사람들이 드루팔 커뮤니티가 어떻게 개선될 수 있는지에 대한 제안을 많이 가지고 있습니다. 사람들이 드루팔에 정말 관심을 갖고 있고, 개선된 드루팔을 보기 원하는 것이기 때문에 정말 기쁜일입니다.
하지만, 모든 요구를 구현해 내는 것은 현실적으로 어렵습니다. 드루팔은 참여자들의 커뮤니티이며 최종적으로 개발해낸 것보다 더 많은 요구가 있고, 그 중에서 사람들이 정말로 필요한 것들을 선택하여 구현합니다. 변경사항들을 적용하는데에도 시간이 걸립니다. 심지어 기술적으로도 쉬운 변경사항(모듈을 사용가능하게 한다거나, Drupal.org에 두 사이트를 올리는 것등)들도 커뮤니티 전체적으로 얼마나 유용할 것인지, 악영향을 미칠 요소는 없는지, 변경점에 드는 노력을 최소화 할 수 있는 방법이 없는지, 더 오랜기간을 고려하여 이익이 될 수 있는 다른 영역이 있는지 등을 고려할 필요가 있습니다. 그러므로 여러분의 제안이 적용되기 위해서는 더 나으면서도 효율적이며, 많은 사람들이 공감할 수 있도록 노력해야 합니다. 여러분들이 드루팔에 "가지고 있는 문제점"을 해결하길 원한다면 그것을 고치는데 도움을 줄 수 있어야 합니다. 드루팔의 커뮤니티는 셀 수 없는 방법으로 도움을 줄 수 있는 방법이 많습니다. 개발 토론에 직접 참여한다거나, 핸드북 내용에서 잘못된 점을 고치거나, 모듈을 변경하는 것 등 여러가지 방법이 있습니다. 여러분들의 제안이 성공적으로 전달될지의 여부는 여러분의 여러가지 접근 방법에 달려있습니다. 프로젝트에 적용될 제안이라는 것은 따로 없습니다만, 여기에 구성원들의 제안을 듣기 위해 관심을 두고 있는 커뮤니티의 경험있는 구성원들이 여러분들의 제안을 구현할 수 있는 최선의 실제적인 방법을 단계별로 자세히 써 놓았습니다. 1. 조사 "이런것은 어떤가요?" 라고 물어봅시다. 지레짐작하지 마십시오. 어쩌면 좋은 근거가 있을 것입니다. 당신의 특별한 주제에 대해 결정을 내릴 수 있는 단계까지 이를 수 있도록 할 수 있는 사람들을 찾도록 노력하십시오. 그리고 그들과 대화해보십시오. 당신이 원하는 요구와 기존의 요구가 일치하는지 알아보십시오.
2. 연구
여러분들의 요구를 수용할 수 있는 확장된 내용의 해결방법이 있는지 보십시오. 여러분이 직면한 문제에 대해 다른 사람들은 어떻게 대면하고 있는지 보십시오. 여러분들의 제안에 이익이 될 것이 있는지, 다른 대체 방법이 있는지를 알아보기 위해서 다른 커뮤니티 구성원과 얘기해보십시오.
3. 제안
가능한 자세하게, 문제를 해결하는 단계의 전체적인 개요를 제시하십시오. 여러분들이 생각하는 해결방법이 어떻게 보여질지, 그리고 어떻게 작용할 것인지 서술하십시오. 누구나 생각을 제안할 수 있습니다. "내 생각엔 드루팔이 이러한 것을 해야해." 좋습니다! 그러나 이미 연구된 적이 있고, 계획에서 보류되었고, 그것의 목적과 효율성을 재어볼 수 있는 제안은 각광받지 못할 것이며, 나중에 구현될 것입니다.
4. 재수정
커뮤니티로부터 피드백을 얻으십시오. 이것은 여러분의 본래 제안을 개선할 수도 있습니다. 더욱 비판적이 되어서 그들에게 제시하거나 여러분의 계획에 합류하도록 하십시오.
5a. 인내
여러분의 제안이 얼마나 잘 기술되었는지에 따라서, "네! 당신이 뜻하는 것이 정확히 무엇인지, 무엇을 원하는지 알겠어요!"라고 말할 수 있는 개발자의 눈에 띌 것입니다. "네! 제가 이 부분에 대한 지원금으로 500달러를 기부할께요!" 라고 말하여 개발자의 맘을 변하게 할 수 있는 사람의 눈에 띌 것입니다.
5b. 스스로 고치기
하지만, 드루팔 커뮤니티는 갑자기, 즉시 이뤄지는 것이 아니라 점진적으로 진화하기 때문에 참고 인내해야 합니다. 변경사항은 몇 일, 몇 시간이 아니라, 몇주나 몇 달에 걸쳐 나타납니다. 협력하는 과정에서 포럼과 이메일을 통한 토론이 시간을 지연하는 경우가 있습니다. 결정을 하는 것은 한 사람에 의해 하는 것이 아니며, 보통 그룹 협의에 의한 것입니다. 여러분의 제안이 여러분들에게만 공감되는 것이 아니라, 다른 대다수의 사람들이 먼저 공감할 수 있도록 유념하십시오. 다른 한 편으로, 여러분은 미적지근한 동의를 얻거나, 시간이 오래되어 응답을 받을 수 있습니다. 사람들이 당신의 제안을 전부 이해하지 못하거나 이것이 어떻게 작용할지 모르기 때문입니다. 때때로 최상의 방법은 여러분이 원하는 대로 여러분의 손으로 하는 것입니다. 드루팔 커뮤니티는 당신에게 글자 그대로 수많은 기회를 제공합니다. 다음과 같이 할 수 있습니다.
대조적으로 변경사항을 적용하는데 도움이 안될만한 여러가지를 적어봤습니다.
비난 어떤 사람들은 개발자들에게 '게으르다, 자기 중심적이다, 관심도 안 갖는다, 실력이 나쁘다.'는 식의 매우 비난하는 태도를 갖고 접근하는 경우가 있습니다. 이러한 태도가 사람들의 맘을 떠나게 하는 최고의 요인입니다. (역자주: 간단하게 소외됩니다.)
요구
이 일을 하면서 "드루팔"로부터 보상을 받는 사람들은 없습니다. 따라서 그들이 다음으로 관심을 두는 것에 대해 노력하거나 그들의 고용주들이 지시한 것을 위해 노력할 수 있습니다. 즉 당신이 지적한 문제에 대해 관심이나 시간적 여유를 갖고 있는 사람이 없을 수도 있다는 것을 뜻합니다. 이러한 점을 수용하고 전체적인 외곽으로 여러분 스스로 화제를 고치기 위한 단계를 갖으십시오. 요구하는 것은 사람들로부터 도울 의욕을 떨어뜨리도록 할 뿐입니다.
인내하지 않는 것
로마는 하루아침에 이루어지지 않았듯이, 드루팔도 그러하고, 또한 여러분의 새로운 제안도 그러할 것입니다. 모든 것들이 적절하게 고려하고, 계획을 세우고, 구현하기 위한 시간을 갖습니다. 이것을 수용하고 (시간이 걸리는 것에) 불만을 토로하지 않도록 하십시오. 만약 모든 제안이 무질서하게 꼬여 있다면, 우리가 알고 사랑하는 시스템의 안정성을 갖을 수는 없었을 것입니다.
이러한 요구가 많다고 생각하십니까? 맞는 말입니다. 너무 짧은 시간과 개인적인 준비(IRC에서 요청하거나, 포럼에 "제안"을 등록하는 데에는 5분 밖에 안 걸립니다.)에 비해, 그러한 제안에 대해 변경사항을 보이기 위해서는 많은 자유 시간과, 에너지, 인내심, 위원회, 그리고 기술적인 능력이 필요하게 됩니다. 또한 이러한 작업 후에도 때때로 여러가지 이유로 인해 *아직도* 구현되지 않은 아이디어가 있습니다. (의사 결정 처리에 대해 더 많은 것을 알기 위해서 ![]() 커뮤니티에 온 것을 환영합니다. 1.1.2. 드루팔이 여러분에게 맞습니까? ¶만약 여러분이 드루팔을 처음 써보신다면, 여러분들은 여러분들의 응용범위에 대해 드루팔의 능력과 적절성에 대한 질문이 많으실겁니다. 이 부분에서는 여러분들의 요구에 드루팔이 적절한지 여부를 결정하도록 도움을 줄 수 있는 정보를 포함합니다.
실제사례 부분은 드루팔의 전형적인 사용예를 보이며, 드루팔을 사용하는 사이트의 논의된 각 형태들에 대한 몇몇 예제를 보여줍니다. 이 부분도 드루팔 사이트로 알려진 수백개의 목록을 포함하고 있습니다. 개요에서 우리는 몇몇 중요한 점들과 드루팔의 공통적으로 전개된 요소들을 전망합니다. 여러분의 프로젝트를 지원하기 위한 사용자 설정형의 웹어플리케이션 프레임워크로서 드루팔을 사용하는 것으로서의 이익에 대한 논의는 ![]()
1.1.3. 접근성 ¶드루팔은 Section 508과 WCAG(Web Content Accessibility Guidelines:웹 컨텐츠 접근 지침) 순위 1, 2, 3 과 호환합니다.
엄격한 코딩 표준이 드루팔의 데이타와 논리 그리고 각각 다르게 분리된 외양을 유지하기 위해 사용되었습니다. 이것은 드루팔 출력의 모든 마크업들이 완벽하게 응용프로그램의 '테마'로 알려진 외양 레이어에 의해 제어되고 있음을 의미합니다. 드루팔을 사용하는 사이트의 접근 유연성은 어떤 테마를 사용했느냐에 따라 달라집니다. 드루팔과 함께 배포되는 테마들입니다. Bluemarine ✓ Section 508
✓ WCAG Priority 1
Chameleon
✓ Section 508
✓ WCAG Priority 1, 2, 3
Marvin
✓ Section 508
✓ WCAG Priority 1, 2, 3
Pushbutton
✓ Section 508
✓ WCAG Priority 1
주의: 몇몇 서드파티들은 드루팔 응용프로그램의 엄격한 코딩 스타일에 부합하지 않고 접근성을 깨뜨릴 수 있는 데이타를 마크업 안에 씌워넣으므로써 추가적인 요소들을 삽입한 모듈들을 제공합니다. 접근성을 깨뜨리는 것은 버그로 인식되며, 이것이 모듈의 제작자가 경고를 받을 수 있는 일이 발생합니다.
접근성 테스트 도구북
![]() Section 508 과 WCAG 1.0 순위 1, 2, 3 테스트
![]() Section 508 과 WCAG 1.0 순위 1, 2, 3 테스트
![]() 색상수가 낮은 사용자에게 보이는 사이트를 보여줌
1.2. 설치와 설정 ¶드루팔 사이트를 설치하고 설정하는 것에 대한 설치와 설정 가이드입니다. 이 가이드는 모든 핵심 모듈들, 테마 설치, 일반 사용자 가이드에 대한 확장된 하우투 문서도 포함합니다.
주의: 이 부분과 관련된 핸드북 페이지들을 추가하는데 부담갖지 마십시오. 문서들은 검토와 승인에 대해 알맞은 과정을 거칠 것입니다. 1.2.1. 드루팔 용어에 대한 소개 ¶드루팔은 웹 기반 컨텐츠 관리 시스템입니다. 텍스트와 다른 종류의 컨텐츠를 가리키는 포인터들은 데이타베이스에 저장되며, 웹 브라우져를 통해 보내진 요청에 대한 응답으로 동적으로 검색되고, 구성되어, 사용자에게 보여집니다.
드루팔에 있는 컨텐츠들은 각각의 "노드"들로 구성됩니다. "이야기" 형식의 노드에 대해, 사용자들은 노드에 답변글을 추가할 수 있습니다. (답변글들 자체는 노드로 인식되지 않습니다.) 사이트 설정에 의하여, 새 노드를 추가하는 것이나 답변글을 추가하는 것을 허용하거나, 허용하지 않을 수 있습니다. 또한 노드들이나 답변들이 노드나 답변으로 표시되기 전에 중재자들로부터 승인을 필요로 하게 할 수도 있습니다. 블로그 입력은 드루팔 노드의 다른 형식입니다. 기본적인 드루팔 레이아웃("테마")은 세개의 칸으로 구성되어 있습니다. 가운데 부분을 "내용칸"으로 불립니다. 이 칸은 전형적으로 날짜순으로 최근에 등록된 노드들의 요약을 표시합니다. 만약 노드 요약을 클릭하면, 노드의 전체 내용이 가운데 칸에 표시됩니다. 왼쪽과 오른쪽의 칸들은 "사이드바"로 불립니다. 사이드바들은 관련된 정보의 "블럭"들을 표시할 수 있습니다. 블럭들은 다른 노드들로 이동하기 위한 링크들을 자주 포함합니다. 예를 들어, 최근에 등록된 이야기들을 보여주는 블럭들이 될 수도, 혹은 가장 인기있는 이야기가 될 수도 있습니다. 새로 설치할 경우, 사용가능한 기능의 메뉴를 포함하는 이동 블럭과 함께 로그인 블럭을 표시합니다. 다른 메뉴 항목들은 사용자가 하고 있는 것과 정의해놓은 권한("규칙들")에 의해 이동 블럭에 표시할 수 있습니다. 블럭들은 설정한 내용과 규칙에 따라 표시될 수도, 표시되지 않을 수도 있습니다. 예를 들어, 이미 로그인 되어 있다면 로그인 블럭을 표시하지 않게 하거나, 사용가능한 이야기 노드들이 없다면 "가장 최근의 이야기" 블럭을 표시하지 않을 수도 있습니다. 관리자는 관리>>블럭들 메뉴 항목에서 다른 블럭들을 사용가능하게 혹은 사용하지 않게 할 수 있습니다. 노드들은 카테고리들에 구성될 수 있으며, 분류라고 부릅니다. 포럼들은 카테고리에 의해 구성된 컨텐츠 노드들의 한 예입니다. 카테고리들은 한 부모 카테고리가 여러개의 하위 카테고리를 갖는 것처럼 수직적으로 구성될 수 있습니다. 드루팔에 있는 새로운 요소들은 자주 "모듈"로 구현됩니다. 관리자가 "modules" 디렉터리에 모듈 파일을 추가하면, 관리 >> 모듈 부분에서 모듈을 사용하기 위한 옵션이 나타납니다. 만약 관리자가 관리 >> 모듈 에서 모듈을 사용가능하도록 한다면, 각 요소들은 모듈과 연계되어 모듈을 활성화합니다. 모듈은 새로운 노드형식으로 정의할 수 있으며, 새로운 메뉴 항목이 이동 블럭에 나타나고, 새로운 블럭의 형식도 사이드바에서 표시할 수 있게 됩니다. 여기에 핸드북과 포럼에서 사용되는 많은 단어들과 용어가 있습니다. 이 용어들과 단어의 지정된 의미를 알고 사용자들에게 이해하도록하여 여러분들이 포럼에서 질문을 할 때 더욱 효과적으로 대화하고 드루팔을 사용할 수 있도록 있도록 도울 것입니다. 1.2.1.1. 드루팔 경로 탐험 ¶드루팔 경로의 예
확실한 페이지의 드루팔 경로를 찾기 위해 관리/내용 으로 가십시오. 여러분이 생성한 모든 페이지의 목록을 보게 될 것입니다. 마우스를 제목들 중 하나에 올려놓고 브라우저의 상태 막대에 다음과 비슷한 내용을 보게될 것입니다. (보통 왼쪽 아래나 제목위를 클릭하고 페이지가 나타날 때 주소창에 있는 주소를 읽습니다.)
드루팔 경로를 찾기 위한 몇몇 다른 위치들
http://www.yourdomain.com/?q=node/54 더 많은 드루팔 경로를 발견하기 위해서 링크 위에 마우스 커서를 올려놓고 상태창에서 눈을 떼지 마십시오. 그리고 다른 페이지로 이동할 때, 브라우져 주소막대에 있는 주소를 확인하십시오. 관리 >> 카테고리. 카테고리 다음의 링크 "편집 용어"의 위를 마우스로 올려놓으십시오. (taxonomy/term/6)
1.2.1.2. 용어 ¶드루팔은 지정된 것을 의미하는 관련 용어들을 사용합니다. 드루팔의 기초적인 요소는 다음과 같이 정의되었습니다.
블럭 블럭들은 이동을 위한 링크들이나 브라우져에서 볼 때 왼쪽이나 오른쪽에서 보통 나타나는 추가 컨텐츠들입니다. 4.6 버전에서는 블럭 위치가 테마에 의해 제어될 수 있도록 되어 있으며, 4.7 에서는 블럭 위치가 관리자 설정을 통해 어디든지 지정될 수 있도록 되어 있습니다. 블럭들은 노드가 아니며, 페이지 안에 데이타를 위치하는 하나의 수단입니다. 블럭의 모양은 블럭 정의 방법($subject, $content, $region = "main")으로 각 테마에 의해 조정할 수 있습니다.
테마 엔진
![]() 테마 엔진은 스크립트의 집합입니다. 스크립트들은 코드를 해석하고 여러분의 사이트에 더 쉽게 테마를 적용할 수 있도록 합니다. 이것은 동적으로 생성된 내용과 HTML 의 출력을 갖습니다. 드루팔은 추가적으로 테마 엔진을 우회하는 테마를 쓸 수 있는 세가지 테마 엔진을 가지고 있습니다. 4.6 버전과 이전버전의 기본 테마 엔진은 xTemplate 이며, 4.7 은 phpTemplate 입니다. 제공되는 엔진에 대해서는 다운로드의 테마 엔진 부분을 보십시오.
필터
내용을 검열하도록 조정합니다.
모듈
모듈은 기능별로 나눠진 조각으로 드루팔을 확장하는 코드의 조각입니다. 핵심 모듈들은 드루팔의 주요 다운로드에 포함되어 있습니다. 제공되는 (혹은 제공한) 모듈들은 다운로드의 모듈 부분에서 별도의 다운로드로 사용가능합니다. 사용하기 원하는 모듈이 드루팔의 버전에서 사용 가능한지 드루팔 버전에 의해 드루팔 배포 부분에 나열된 모듈들을 확인하십시오.
노드
드루팔에서 거의 모든 내용들은 노드로 저장됩니다. 사람들이 "노드"를 언급할 때 드루팔 안에서는 컨텐츠의 조각을 의미하며, 그 내용이 투표나, 이야기, 책페이지 등등이 될 수 있습니다.
권한
권한들은 컨텐츠 생성, 변경과 사이트 관리에 대한 접근을 조절합니다. 관리자들은 규칙에 권한을 지정하고, 사용자에게 규칙을 지정합니다. 드루팔 사이트의 처음 사용자 아이디(uid=1)는 자동적으로 모든 권한을 받게 되며, 사용자에게 적용되는 규칙이 적용되지 않습니다.
규칙들
규칙들은 권한의 집합입니다. 규칙은 개인 사용자들에게 적용될 수 있습니다. 사용자는 한가지 이상의 규칙을 갖을 수 있습니다. 두가지 규칙들, 인증된 사용자(이 사용자들은 계정을 생성한 사용자들입니다.)와 익명의 사용자들(이 사용자들은 계정 생성이나 로그인도 없는 사용자들입니다.)에 대한 규칙을 드루팔 설치에 기본적으로 제공합니다. 그러나 규칙들은 설정될 수 있으며 처음 사용자가 추가적인 규칙을 생성할 수 있습니다.
스타일
테마나 엔진의 기본 CSS 를 대체하는 CSS 파일을 말합니다. 테마와 템플릿으로서 같은 우위를 갖는 테마 선택 목록에 나타납니다.
분류
문자 그대로 "등급의 과학"을 말합니다. (역자 주: 표현 한 번 정말 희한합니다.) 드루팔은 카테고리 시스템을 표현하기 위해 '분류'를 사용합니다. 카테고리 시스템을 사용하여 웹 사이트의 내용을 등급화하고 구성하는데 사용할 수 있습니다. 드루팔에서 분류는 카테고리의 집합입니다. 문서에서 분류 시스템에 대한 추가적인 정보가 있습니다.
템플릿
읽기가 가능한 HTML 작성 파일입니다. 대부분 엔진에 의해 제공되는 값으로 치환되는 특별한 코드를 갖는 HTML 형식 파일입니다.
테마
테마는 보통 (php, theme, css, jpg, gif, pgn 등의) 파일의 집합입니다. 이 파일들은 사이트의 외형을 결정하는 일을 합니다. 이 파일들은 드루팔에 대해 사용가능한 테마 엔진 중 하나에 의해 자주 사용됩니다. 그 중 PHP 파일은 인수를 받아 HTML 마크업으로 변경하는 함수가 있는 파일입니다. 드루팔 모듈들은 테마 파일에 의해 덮어씌여질 테마로 사용가능한 함수들을 정의합니다. 다운로드의 테마 부분에 사용가능한 테마들이 있습니다.
1.2.1.3. 노드 형식 ¶드루팔은 모든 내용을 노드에 저장합니다. 드루팔의 기본 노드 형식의 집합은 상대적으로 짧지만, 매우 유연합니다.
블로그 기입 블로그나 웹로그들은 온라인 저널과 다이어리의 다른 용어입니다. 그것들은 커뮤니티의 구성원들이 그들의 생각을 쓸 수 있는 곳이며, 사이트에 대해 화제가 되는 것에 대한 걱정을 하지 않아도 되는 것입니다.
책 페이지
책 페이지들은 공저가 가능한 책의 부분이 되도록 디자인 되었습니다. 공저되는 책의 예가 드루팔 개발 문서입니다. 본래 책 페이지는 책의 부분으로만 가능했었으나, 오늘날에 와서는 모든 노드 타입이 책의 일부분이 될 수 있습니다.
답변
답변은 실제로 노드가 아닙니다. 이것은 특별한 내용 형식입니다. 답변은 생성된 어떤 노드에 대해서도 사람들이 답변을 추가하도록 허용된 것입니다.
포럼
포럼들은 노드와 노드의 답변들의 집합입니다. 포럼 이름을 노드에게 지정함으로써 하나의 포럼에 속하게 그룹화 할 수 있습니다. 포럼은 분류 용어입니다. 이 포럼 이름들은 포럼 컨테이너에서 그룹화 할 수 있습니다. 포럼 컨테이너들은 계층적 위치에서 포럼의 상위에 있으므로 '포럼들'이라고 불립니다. 또한 '포럼들'은 포럼 타입의 노드들만 적용 가능하도록 설정되어 있습니다.
페이지
페이지는 단순한 노드입니다. 전형적으로 정적인 내용에 사용됩니다. (필요한 것은 아니지만) 메인 이동 막대에 링크될 수도 있습니다.
투표
투표는 다중 선택 질문을 하는 곳이며 사용자들은 질문에 답 할 수 있고 외부인들은 투표의 결과를 볼 수 있습니다.
이야기
이야기 페이지들은 대부분의 내용 관리 시스템이 갖는 일반 페이지 형식입니다. 이야기들은 보통 일정 기간동안 관련된 내용에 대한 정보에 대해 사용되는 경우(예를 들어 뉴스)가 많으며, 페이지의 만료기간이 있는 것입니다.
추가적인 노드들의 형식은 포함된 모듈에 의해 제공됩니다.
주의: 대부분의 질문이 "페이지와 이야기간에 차이점은 무엇인가요?"입니다. 대답은 별 차이 없다는 것입니다. 초기에는 많은 차이점이 있었으나 지금은 별 차이가 없으며, 그것들을 어떻게 쓰느냐에 따라 다르게 되는 것입니다. (역자 주: 사용자의 사용 목적에 따라 달라진다는 말입니다.) 1.2.2. 시스템 요구사항 ¶
또한 xTemplate (4.6.x 과 그 이전 버전의 기본 테마 엔진)은 php 5.0.5 와 5.1 에 문제점을 가지고 있는 것으로 알려져 있습니다. (드루팔 4.7 버전에서 기본으로 사용하는) phpTemplate 엔진으로 전환하는 것이 이 문제점을 회피하는 방법으로 보여집니다. 1.2.3. 드루팔, 모듈, 테마 설치 ¶드루팔, 새 모듈, 테마들을 한 번 대략 설치해보게 되면 같은 순서로 설치를 진행하는 것에 익숙해지기 때문에, 필요에 의해 반복해서 설치해 볼 수 있습니다.
드루팔을 성공적으로 설치하고난 다음엔, 설정 메뉴에서 기본 사이트 설정을 실행하길 원할 것입니다.
설치와 사이트 설정은 오로지 여러분의 책임입니다. 백업하고, 테스트하고 잘 동작하도록 관리하는 것을 꼭 명심하십시오. 몇몇 중요한 팁에 대한 부분과 보안 뉴스레터에 대한 확인 부분까지가 최고의 연습 부분으로 생각하고 멈춰주십시오.
1.2.3.1. 드루팔 설치 ¶// $Id: DrupalHandbook,v 1.63 2007/08/07 12:08:00 kss Exp kss $ 이 파일의 내용 -------------- * 요구사항 * 추가적인 요구사항 * 설치 - 드루팔 관리 - 테마 사용자 정의 * 업그레이드 * 더 많은 정보 요구사항 -------- 드루팔은 웹서버와 PHP4나 5와 함께 MySQL이나 PostgreSQL 이 필요합니다. 주의: 아파치 웹 서버와 MySQL 데이타베이스를 강력히 추천합니다. IIS와 PostgreSQL 과 같은 다른 웹 서버와 데이타베이스 조합은 가능하지만, 확장에 대해 많은 테스트가 거쳐지지 않았습니다. 추가적인 요구사항 ----------------- - 블로거 API, Jabber, RSS 연계와 같은 XML 기반 서비스를 사용하기 위해, 여러분은 PHP의 XML 확장을 필요로 할 것입니다. 이 확장은 기본 PHP4 설 치에서 기본으로 사용가능합니다. - 만약 깨끗한 URL을 지원하길 원한다면, mod_rewirte 와 지역 .htaccess 파 일을 사용하는 능력이 필요할 것입니다. (더 많은 정보는 드루팔 핸드북과 drupal.org 에서 찾을 수 있습니다.) 설치 ---- 1. 드루팔 다운로드 http://drupal.org 로부터 최신의 드루팔 배포버전을 획득할 수 있습니다. 파일들은 .tar.gz 형식이며 대부분 압축 툴을 사용하여 추출할 수 있습니다. 전형적인 유닉스 명령어 행에서는 다음을 사용하십시오. wget http://drupal.org/files/projects/drupal-x.x.x.tar.gz tar -zxvf drupal-x.x.x.tar.gz 이것은 모든 드루팔 파일들과 디렉터리를 포함하는 새로운 drupal-x.x.x 디 렉터리를 생성할 것입니다. 디렉터리의 내용을 여러분의 웹 서버의 문서 루 트나 공개 HTML 디렉터리로 이동하십시오. mv drupal-x.x.x/* drupal-x.x.x/.htaccess /var/www/html 2. 드루팔 데이터베이스 생성 이 단계는 데이타베이스가 설치되어 있지 않다면 필요한 부분입니다. 만약 웹 기반 제어 패널을 통해 여러분의 데이타베이스를 조절한다면, 데이타베이스 생성에 대한 문서를 확인하십시오. 다음의 명령어들은 명령어 행에서만 다룹니다. 이 명령어들은 MySQL 을 위한 것입니다. 만약 다른 데이타베이스를 사용한다면 데이타베이스 문서를 확인하십시오. 다음의 예제에서 'dba_user'는 CREATE 와 GRANT 권한을 갖는 MySQL 사용자의 예입니다. 여러분의 시스템의 적절한 사용 자의 이름을 사용하십시오. 먼저, 여러분의 드루팔 사이트에 대한 새로운 데이타베이스를 생성해야 합니다. (여기서 'drupal'은 새로운 데이타베이스의 이름입니다.) mysqladmin -u dba_user -p create drupal MySQL 은 'dba_user'에 대한 데이타베이스 비밀번호를 물어올 것이며, 초기화된 데이타베이스 파일들을 생성할 것입니다. 다음으로 여러분은 로그인 하여 데이타베이스 접근권한을 설정해야 합니다. mysql -u dba_user -p 다시, 여러분에게 'dba_user'에 대한 데이타베이스 비밀번호를 물어볼 것입니다. MySQL 프롬프트에서, 다음 명령을 입력하십시오. GRANT ALL PRIVILEGES ON drupal.* TO nobody@localhost IDENTIFIED BY 'password'; 여기서 'drupal' 은 데이타베이스의 이름입니다. 'nobody@localhost' 은 웹서버 MySQL 계졍의 사용자 이름입니다. 'password' 는 MySQL사용자로서 로그인에 필요한 비밀번호입니다. 만약 성공하면, MySQL은 다음과 같이 반응할 것입니다. Query OK, 0 rows affected 새로운 권한을 활성화 하기 위해 다음 명령을 입력해야 합니다. flush privileges; 그리고 MySQL 을 종료하기 위해 '\q' 를 입력하십시오. 3. 드루팔 데이타베이스 구조 불러오기 데이타베이스를 갖춘 후, 데이타 베이스에 필요한 테이블을 불러와야 합니다. 웹 기반 제어 패널을 사용한다면 드루팔 'database' 디렉터리에서 'database.mysql' 을 업로드 할 수 있도록 해야 합니다. 그리고 SQL 명령으로 직접 실행하십시오. 명령어 라인에서, 다음의 명령을 사용하십시오. (여기서 'nobody'는 사용자의 아이디로 drupal은 MySQL 의 데이타베이스 이름으로 대체하십시오.) mysql -u nobody -p drupal < database/database.mysql 4. 드루팔에 연결하기 기본 설정을 여러분의 드루팔 설치위치에 있는 'sites/default/settings.php' 파일에서 찾을 수 있습니다. 드루팔을 실행할 수 있기 전에, 여러분은 데이타 베이스의 URL과 웹 사이트의 기본 URL을 설정해야 합니다. 설정 파일을 열고 $db_url 행을 이전 단계에서 지정한 데이타베이스와 일치하도록 수정하십시오. $db_url = "mysql://username:password@localhost/database"; 여기서 'username', 'password', 'localhost', 'database'는 여러분의 설정에 대한 사용자 ID, 비밀번호, 호스트, 데이타베이스 이름입니다. $base_url을 여러분의 drupal 사이트에 맞게 지정하십시오. $base_url = "http://www.example.com"; 추가적으로, 한 번 드루팔 설치를 하여 각 사이트에 개인적인 설정을 두는 것 으로 여러개의 사이트에서 드루팔을 호스팅 할 수 있습니다. 있습니다. (역자 주: 핸드북의 내용에서 설치 후 바로 사이트에 접속하지 않도록 되어있기 때문에 위의 까지의 과정이 끝나셨다면 설치한 주소로 연결하여 계정을 생성하고 관리자 페이지로 들어가시기 바랍니다.) 만약 다중 드루팔 사이트가 필요하지 않다면 다음 부분은 넘어가십시오. 추가적인 사이트 설정은 'sites' 디렉터리 안의 하위 디렉터리에 생성됩니다. 각 하위 디렉터리는 설정을 지정해 놓은 'settings.php' 파일을 가지고 있어야 합니다. 가장 쉬운 방법은 기본 'settings.php' 파일을 복사해와서 적절하게 변경하는 것입니다. 새로운 디렉터리 이름은 사이트의 URL로 구성됩니다. www.example.com 에 대한 설정은 'sites/example.com/settings.php'가 됩니다. (여러분의 사이트가 http://example.com 에 접근할 수 있다면 www. 를 생략할 수도 있습니다.) 사이트들은 각각 다른 도메인을 갖지 않습니다. 드루팔 사이트에 대해서도 하위 도메인 과 하위 디렉터리를 사용할 수 있습니다. 예를 들어, example.com, sub.example.com, 과 sub.example.com/site3 과 같이 독립적인 드루팔 사이트로써 설정할 수 있습니다. 위와 같은 설치에 대한 설정은 다음과 같습니다. sites/default/settings.php sites/example.com/settings.php sites/sub.example.com/settings.php sites/sub.example.com.site3/settings.php 사이트 설정에 대한 검색을 할 때 (예를 들어 www.sub.example.com/site3 에 대해), 드루팔은 첫번째 설정을 사용하여 다음과 같은 순서로 설정파일들을 검색할 것입니다. sites/www.sub.example.com.site3/settings.php sites/sub.example.com.site3/settings.php sites/example.com.site3/settings.php sites/www.sub.example.com/settings.php sites/sub.example.com/settings.php sites/example.com/settings.php sites/default/settings.php 만약 여러분이 비표준 포트 번호에서 설치중이라면 ':' 대신 '.'로 변경하십시오. 예를 들어, http://www.drupal.org:8080/mysite/test/ 은 sites/www.drupal.org.8080.mysite.test/ 로부터 불러들일 수 있습니다. 각 사이트 설정은 기본적으로 설정 디렉터리의 'modules' 와 'themes' 디렉터리를 추가적으로 생성하는 것으로 사이트에서 사용 가능하도록 할 수 있습니다. 사이트에서 지정한 모듈들과 테마들을 사용하기 위해, 사이트 설정 디렉터리에서 간단히 'modules'나 'themes' 디렉터리를 생성하십시오. 예를 들어, 만약 sub.example.com 이 사용자 정의 테마를 가지고 있고 다른 사이트가 접근해서는 안되는 사용자 정의 모듈을 가지고 있을 경우 설정은 다음과 같습니다. sites/sub.example.com/: settings.php themes/custom_theme modules/custom_module 주의: 다중 가상 호스트나 설정 파일에 관한 더 많은 정보에 대하여, drupal.org 에 있는 드루팔 핸드북과 상담하십시오. (역자 주: 핸드북에 답글을 달 수 있도록 되어 있어서 새로운 변경된 내용이 있을 경우 답글이 있습니다. 설치 전 확인해주시기 바랍니다.) 5. 드루팔 설정 여러분은 드루팔 설치 디렉터리에 "files" 하위 디렉터리를 생성하는 것을 고려해야 합니다. 이 하위 디렉터리는 사용자가 지정한 로고들과, 사용자 아바타들, 여러분의 새로운 사이트에 연결된 다른 미디어들과 같은 파일들을 저장합니다. 하위 디렉터리는 드루팔 서버 과정에 의해 "읽기" 와 "쓰기" 권한을 필요로 합니다. 이 하위 디렉터리의 이름을 "관리 > 설정 > 파일 시스템 설정"에서 변경할 수 있습니다. 여러분은 지금 여러분의 브라우저에서 설치할 수 있으며 여러분의 드루팔 사이트에 대한 설치를 지정할 수 있습니다. 계정을 생성하고 로그인 하십시오. 첫번째 계정은 전체 제어권과 함께 자동적으로 메인 관리자가 됩니다. 6. CRON 작업들 (검색 기능과 같은) 많은 드루팔 모듈들이 주기적으로 작업을 갖습니다. 그 작업들은 cron 작업에 의해 시작되어야만 합니다. 이러한 작업들을 활성화 하기 위해 http://www.example.com/cron.php 를 방문하는 것으로 cron 페이지를 호출합니다. 이것은 모듈에게 제어권을 넘길것이며, 모듈 이 해야 할 작업을 결정합니다. 대부분의 시스템은 이것과 같이 스케쥴 작업에 대해 crontab 유틸리티를 지원합니다. 다음의 예제 crontab 행은 매 시간마다 자동적으로 cron 작 업을 활성화 할 것입니다. 0 * * * * wget -O - -q http://www.example.com/cron.php cron 스크립트에 관한 더 많은 정보는 관리 도움말 페이지와 drupal.org에 있는 드루팔 핸드북에서 사용가능합니다. 예제 스크립트는 scripts 디렉터 리에서 찾을 수 있습니다. 드루팔 관리 ----------- 새로 설치한 다음, 여러분의 드루팔 웹 사이트는 아주 일부의 활성화된 모듈과 한가지 테마, 사용자 접근 권한이 없는 기본 설정으로 설정되어 있습니다. 서비스를 사용가능하도록 하고 설정하기 위해 여러분들의 관리 패널을 사용하십시오. 예를 들어, "관리 > 설정" 에서 여러분의 사이트에 대한 몇몇 일반 설정을 설정하십시오. "관리 > 모듈"을 통해 모듈을 사용가능 하게 하십시오. 사용자 권한들은 "관리 > 사용자 > 설정 > 권한" 으로 설정할 수 있습니다. 설정 옵션에 대한 더 많은 정보를 위해, 다른 설정과 관리 패널에서 사용 가능한 다양한 상담 도움말 페이지를 수반하여 설명서들을 전부 읽으십시오. 제공되는 커뮤니티 모듈들과 테마들은 drupal.org 에서 사용되는 것입니다. 테마 사용자 정의 ---------------- 지금 여러분의 서버가 실행중이며, 여러분의 사이트를 직접 수정하길 원하실 겁니다. 다양한 셈플 테마가 드루팔 설치 파일에 포함되어 있으며 drupal.org 에서 다운로드 받으실 수 있습니다. 각 테마를 사용자 편의에 맞게 수정하는 것은 테마 엔진에 따라 다릅니다. 보통 각 테마들은 themename.theme 라는 이름의 php 파일을 갖습니다. 이 파일은 여 러분의 로고를 변경할 수 있는 header() 함수를 정의합니다. 대부분의 테마들은 색상과 레이아웃을 조화롭게 변경하는 스타일 시트도 포함하고 있습니다. themes 디렉터리에 각각의 대체 테마들을 기술하는 README 파일들이 있는지 확인하십시오. 업그레이드 ---------- 1. 여러분의 데이타베이스와 드루팔 디렉터리를 백업하십시오. 특별히 'sites/default/settings.php' 기본 설정 파일을 주의하십시오. 2. 최초의 사용자 (관리자 계정)로 로그온 하십시오. 3. 이전의 드루팔 파일들을 제거하고 드루팔을 실행할 디렉터리에 새로운 드루팔 파일들을 디렉터리에 해제합니다. 4. 새 설정 파일을 최신의 올바른 정보로 변경하십시오. 5. http://www.example.com/update.php 에 방문하여 업그레이드 하십시오. 더 많은 정보 ------------ 플랫폼 지정 설정 문제와 다른 설치에 대해 그리고 관리 지원에 대해, drupla.org 에 있는 드루팔 핸드북과 상담하십시오. 또한 드루팔 지원 포럼이나 드루팔 메일링 리스트를 통해 지원내용을 찾을 수 있습니다. 1.2.3.2. 새 모듈들 설치하기 ¶드루팔을 설치한 후, 드루팔의 기능을 확장하거나 대체하기 위해 추가적인 모듈들의 설치에 대한 옵션을 갖습니다.
간단히 설명하자면 모듈을 다운로드, 압축해제, 드루팔 모듈 폴더에 압축을 해제해서 생성된 폴더를 업로드, 필요에 따라 mysql 파일 실행, 관리>>모듈 메뉴에서 모듈 사용하기 로 구성됩니다.
주의: 어떤 주제든 날짜를 최신으로 업데이트 하고 고치기 위해 (계정을 가지고 있지 않았고 글을 쓸 준비가 되어있다면) 사용자 계정을 만들 수 있고 여러분이 사용하는 모듈에 대해 기술할 수 있습니다.
1.2.3.3. 새 테마들 설치하기 ¶일단 드루팔 설치를 했고 그 용어들에 좀 익숙해진다면, 당신은 아마 그 드루팔이 좀더 입맞에 맞게 보이길 원할 것입니다.
드루팔 웹 사이트로부터 다운로드 받을 수 있는 몇가지 테마들이 있습니다.
새 테마를 설치하는 것은 아주 쉽습니다 :
1.2.4. 기본적인 사이트 설정 ¶드루팔은 매우 유연한 플랫폼입니다. 당신의 사이트가 어떻게 보일지(디자인적인 면), 사용자들이 드루팔을 통해 어떻게 상호작용할지, 어떠한 종류들의 정보를 사이트에 보여줄 지를 선택할 수 있는 많은 옵션을 드루팔은 제공합니다. 비록 거기에 많은 설정 옵션이 있더라도, 드루팔은 아주 기초적인 초기 설정만으로도 잘 동작합니다(좀 잘못된 설정을 했더라도).
여러분의 사이트가 나아지고 있고 여러분의 요구사항이 늘어남에 따라, 효과적으로 사이트의
보이는 부분을 수정하거나 기능을 추가하는 일들을 드루팔은 좀 더 쉽게 만들어 줍니다.
왜냐하면, 가장 큰 이유로 드루팔은 GPL(GNU Public License)에 따라 릴리즈되기 때문입니다.
드루팔은 무한대로 맞춤(커스터마이징)이 가능하고, 여러분의 필요에 의해 원하는대로 맞춤이 가능합니다.
1.2.4.1. 설정 ¶아래의 글들은 여러분에게 "setting" 페이지에서 조금더 기술적인 설정을 하는데 설명과 팁을 제공합니다. 여러분이 단순히 드루팔을 실행하는데에는 아래의 내용은 그다지 중요한 의미를 가지지 않으며, 여러분이 지금 설정하게될 "file system settings" 를 제외하고는 여러분이 시험적으로 설정한 내용들은 모두 다시 복귀 시킬수 있습니다. 좀더 자세한 내용은 다음에 나오게될 "File system settings"항목을 참조 할수 있습니다. 이 링크(문서의 나머지 내용)을 참조하여 여러분은 드루팔을 설치한후 "settings" 페이지의 상단에 나타나는 에러에 대한 처리 방법에 대하여 도움을 받을수 있습니다.
여러분은 여러분 사이트에 적용하게 될 설정을
administer >> settings. 에서 할수 있습니다.
1.2.4.1.1. 기본 설정 ¶일반 설정 영역은 여러분의 웹사이트의 몇몇 기본적인 설정을 할수 있는 곳입니다.
1.2.4.1.2. 기본페이지 (기본 첫지면) ¶이 설정은 방문자가 여러분의 drupal이 설치된 최상위 디렉토리에 접근하였을때 보여질 drupal에 의해 자동으로 생성된 내용을 제어할수 있습니다.
이 설정은 사용자가 웹페이지에 접근하였을때 URL를 재지정할수 있으며, 이 설정은 drupal이 설치된 디렉토 안에서는 상대경로로 지정될수 있습니다. 예로 http://www.example.com/node/83 또는 http://www.example.com/drupal_installation_directory/node/83, 의 경우 "node/83"만 적으면 됩니다. 깔끔한 URL을 사용하지 않기때문에 "q="을 URL앞에 붙일 필요가 없음을 주의 해야 합니다. (역자주:깔끔한 URL에 관한 설정은 바로 아래 항목에 있습니다.) 기본적으로 "기본 첫지면"는 "첫 지면에 게시함"이 선택된 게시물들의 간단한 내용이 표시되는 "노드"로 설정됩니다. 여러분이 기본 대문 페이지를 다른 노드로 변경하였을 경우에는 "첫 지면에 게시함"이 선택된 게시물일지라도 더이상 기본 대문 페이지에 표시되지 않을것임을 주의 하십시요. 방문자들은 방문시 기본 대문 페이지에 방분하더라도 항상 설정된 노드의 URL을 보게 될것입니다. 만일 여러분이 이항목에 적절하지 않은 drupal 경로를 입력하였을 경우 사용자들은 "페이지를 찾을수 없습니다"라는 에러에 직면하게 될것이며 여러분은 사용자들을 여러분의 drupal 사이트에서 생성되지 않은 어떠한 다른 웹페이지로도 재지정 할수 없을 것입니다. 1.2.4.1.3. 기본지면 만들기의 예 ¶
1.2.4.1.4. 깔끔한 URL들 ¶기본적으로 drupal은 자신의 경로를 내부적으로 만들어진 URL을 이용하여 전달하므로 URL은 다음과 같은 모습으로 보이게 됩니다 : "http://www.example.com/?=node/83." 이러한 표기방법은 읽기 힘들뿐 아니라 이러한 URL을 가지는 페이지를 색인하여 검색하는 구글과 같은 검색엔진을 멈추게 합니다.
여러분은 drupal에 깔끔한 URL을 사용하도록 설정하여 내부적인 URL인 "q="을 제거 할수 있습니다. 하지만 이기능은 LoadModule rewrite_module 항목과 mod_rewrite 가 httpd.conf 설정파일에서 활성화 되어 있는 아파치 서버에서만 동작함을 주의하십시요.
아파치 서버에서 URL을 다시 지정하는 기능을 활성화하는 방법으로는 두가지가 있습니다. 만일 아파치 웹서버를 httpd.conf 파일을 이용하여 깔끔한 URL기능을 활성화 시키도록 완벽히 설정한다면, 성능과 보안이 좀더 나아질것입니다.
주의!. 깔끔한 URL을 지원하도록 설정하는 도중, 여러분의 서버가 정확히 설정되지 않으면 설정페이지로 돌아가서 여러분의 실수를 되돌리기가 힘들어 질것입니다. 만일 여러분들이 이러한 상황에 있다면, 여러분들은 다음과 같이 "non-clean" 양식을 사용한 URL을 쳐 넣음으로서 관리 설정 페이지로 돌아갈수 있습니다. : http://www.example.com/?q=admin/setttings.
깔끔한 URL을 지원하도록 설정하는것은 세개의 단계로 진행됩니다.
1.2.4.1.5. 데비안 시스템의 아파치2 에서 깔끔한 URLs를 사용하기 위한 설정 ¶만일 여러분이 데비안 안정버젼에서 아파치2를 사용하고 있으며 rewrite 모듈을 설치하기 위해서는 간단히 아래와 같이 사용합니다.
# a2enmod rewrite {{{ # /etc/init.d/apache2 restart 그리고 /etc/apache2/sites-enabled/drupal 또는 여러분의 .htaccess파일을 아래와 같이 수정했는지 확인합니다. {{{ # # Apache/PHP/site settings: # # Protect files and directories from prying eyes: <Files ~ "(\.(conf|inc|module|pl|sh|sql|theme|engine|xtmpl)|Entries|Repositories|Root|scripts|updates)$"> order deny,allow deny from all </Files> # Set some options Options -Indexes Options +FollowSymLinks # Customized server error messages: ErrorDocument 404 /index.php # Set the default handler to index.php: DirectoryIndex index.php # Overload PHP variables: <IfModule sapi_apache2.c> # If you are using Apache 2, you have to use <IfModule sapi_apache2.c> # instead of <IfModule mod_php4.c>. php_value register_globals 0 php_value track_vars 1 php_value short_open_tag 1 php_value magic_quotes_gpc 0 php_value magic_quotes_runtime 0 php_value magic_quotes_sybase 0 php_value arg_separator.output "&" php_value session.cache_expire 200000 php_value session.gc_maxlifetime 200000 php_value session.cookie_lifetime 2000000 php_value session.auto_start 0 php_value session.save_handler user php_value session.cache_limiter none php_value allow_call_time_pass_reference On </IfModule> # Various rewrite rules <IfModule mod_rewrite.c> RewriteEngine on Options All # Modify the RewriteBase if you are using Drupal in a subdirectory and the # rewrite rules are not working properly: RewriteBase /drupal # Rewrite old-style URLS of the form 'node.php?id=x': RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{QUERY_STRING} ^id=([^&]+)$ RewriteRule node.php index.php?q=node/view/%1 [L] # Rewrite old-style URLs of the form 'module.php?mod=x': RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{QUERY_STRING} ^mod=([^&]+)$ RewriteRule module.php index.php?q=%1 [L] # Rewrite URLs of the form 'index.php?q=x': RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] </IfModule> # $Id: DrupalHandbook,v 1.63 2007/08/07 12:08:00 kss Exp kss $ }}} 이것은 데비안 패키지가 drupal "site-enabled" 가상 호스트 기능을 설치하기 때문에 결과적으로 drupal이 http://yourhost.com/drupal로 접근가능해 집니다. 따라서 ReWriteBase기능을 주석해제 해야 할 필요가 있으며, 여러분의 시스템의 기초에 일치하도록 변경을 해야 합니다. 아래 링크를 참조하십시요. [[BR]] http://www.debian-administration.org/articles/136 [[BR]] http://drupal.org/node/14322 [[BR]] ===== 다른 웹서버에서의 깔끔한 URLs 기능 사용하기. ===== 마이크로 소프트 인터넷 서비스 서버 윈도우의 인터넷 서비스 서버, MySQL, PHP(WIMP)를 설치 할수 있으며 "Tips for Configuring Drupal on WIMP" 문서를 참조 할수 있습니다. Lighttpd 시스템의 능률을 향상시키고자 하거나 아파치에서 Lighttpd로 사용을 바꾸는 사용자를 위한 것으로 아래와 같은 설정으로 Lighty's mod_rewrite 모듈을 설정할수 있습니다. {{{ url.rewrite-final = ( "^/system/test/(.*)$" => "/index.php?q=system/test/$1", "^/([^.?]*)\?(.*)$" => "/index.php?q=$1&$2", "^/([^.?]*)$" => "/index.php?q=$1" ) }}} 첫번째 줄은 drupal의 깔끔한 URL 사용(설정사항을 저장할때)이 성공적(drupal은 다음과 같은 형식으로 HTTP요청을 합니다. /system/test/yLgnwqqUu5cWnvPi4Hrz.png) 인지 확인하며, 특별한 경우에는 따로 다루어져야 합니다.( 이유에 대해서는 계속 문서를 읽어 보시기 바랍니다.) 아래 따라나오는 두 줄은 "점"을 포함하지 않는 URL에 대해서 drupal을 다루게 됩니다. 우리는 확정적으로 "/node/add" 는 drupal URL로 해석할수 있지만 "/theme/bluemarine/style.css"는 물리적인 파일의 주소를 나타내기때문에 이러한 가정은 매우 중요한 의미를 가지게 됩니다. 따라서 위의 설정은 예를 든 경우에는 모두 정상적으로 동작합니다. 만일 예외 상황이 있다면 예외상황들은 수동으로 rewrite 설정에 추가되어야 합니다. 이에 대한 토의는 http://drupal.org/noe/20766에서 참조하십시요. 이곳에서 언급된 내용은 lighttpd 1.4.8 에 fastcgi를 통한 php4를 설치하여 사용한경우로 성공적으로 동작했습니다. lighttpd 문서에 의해 php를 cgi모드로 사용하기 위하여 /etc/php4/cgi/php.ini 파일도 설정했으며 이는 "lighttpd documentation"에서 확인 할수 있으며, 가상 호스트를 위한 rewrite 규칙도 추가되어 있습니다. ===== 전체 성능을 위한 깔끔한 URL 사용 설정 예제 ===== 이문서는 레드헷 리눅스 페도라 코어 4.0/PHP5/아파치 2.0.54에서 테스트 되었습니다. 아파치에서 .htaccess 파일을 활성화 하는것은 서버쪽에서 하는 일을 더욱 많게 하는 것입니다. 전체 설명은 아래의 주소에서 찾을수 있습니다. http://www.serverwatch.com/tutorials/article.php/3436911 지금은 여러분이 아파치에서 보다 나은성능을 짜내는것에 대해 걱정하고 있다면, .htaccess파일을 사용하지 않거나 비활성화 하는것에대해 관삼을 두고 있다 라고 해두도록 합니다. 우리는 /etc/httpd/con/drupal.conf 파일에 전체 재지정 규칙을 옮겼습니다.(예제 .htaccess파일의 전부를 말입니다.) 그리고나서 각 가상 호스트에 대하여 아래와 같은 줄을 첨부하였습니다. {{{ Include conf/drupal.conf }}} 재지정 규칙이 약간 바뀌었습니다. {{{ # Rewrite current-style URLs of the form 'index.php?q=x'. RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA] }}} 우리는 index.php 파일을 우리의 문서 최상위 디렉토리에 가지고 있기 때문에 우리가 %{DOCUMENT_ROOT} 항목과 index.php앞에 슬래쉬가 오도록 한것에 주의 하십시요. 여러분이 만일 다른 디렉토리를 가지고 있다면 디렉토리의 문서 최상위 디렉토리에 대한 상대 경로를 슬래쉬가 앞에 오도록 하여 지정해야 할것입니다. '''주의''': 여러분이 앞에 오는 슬래쉬를 잊어버린다면 (보다 정확하게는 상대경로를 표시하는데 슬래쉬를 잊어버린다면) 아파치는 "400 Bad Request"에러를 반환할 것입니다. 이것으로 좀더 나아 졌습니다만, 여전히 우리는 우리가 적용한 재지정 규칙에 의하여 모든 주소 요청이 파일과 디렉토리에 존재하는 검사를 해야 한다는 문제점을 가지고 있습니다. 운영체제는 물론 이러한 정보에 대하야 캐쉬 정보를 어딘가에 가지고 있을수도 있습니다. 하지만 역시 파일 시스템의 검사를 피하는것이 가장 좋은 방법이 될것 입니다. 몇몇 디렉토리는 재지정 될 필요가 없기에 확장자 규칙을 재지정 규칙에 영향을 받지않고 모두 사용하게 됩니다. 이러한 정보를 이용해서 우리는 모든 요청을 index.php에 전송하는 이번장에서 설명한 규칙을 갱신할 수 있습니다. 첫번째 규칙은 "files", "misc" 와 "uploads" 디렉토릴를 배제하는것입니다. 두번째 규칙은 여러분이 보는 확장자를 배제하는것입니다. 여러분들이 다른 확장자를 이러한 재지정 규칙에서 제외하고자 하면 단지 추가를 하면 됩니다. {{{ RewriteCond %{REQUEST_FILENAME} !^/$ RewriteCond %{REQUEST_FILENAME} !^/(files|misc|uploads)(/.*)? RewriteCond %{REQUEST_FILENAME} !\.(php|ico|png|jpg|gif|css|js|html?)(\W.*)? RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA] }}} ===== drupal 경로를 덮어 쓸수 있는 서버에 존재하는 경로 ===== 만일 여러분의 서버에 /admin과 같은 drupal에서 사용되는 디렉토리가 존재하는 경우에 여러분의 /home/admin drupal을 서브디렉토리에 두거나 ?=admin과 같이 가상 링크를 만들어 해결할 수 있습니다. ===== 깔끔한 URLs 기능을 IIS 에서 사용하기. ===== drupal은 drupal.org에서 확인할수 있듯 대부분의 URLs를 깔끔하게 표현하고 있습니다. 아파치를 사용하는 경우 mod_rewrite 기능을 사용합니다. IIS 에서는 여러분은 사용자 오류 핸들러를 사용하여 기능을 구현합니다. 이기능을 사용하게 될 경우 모든 페이지 보기가 에러로 간주 되므로 IIS 의 에러 기록 기능을 비 활성화 해야할 것입니다. * 깔끔한 URLs를 사용하지 않은 상태에서 drupal이 정상적으로 동작하는지 확인 합니다. * 여러분의 인터넷 서비스 메니져나 MMC을 열어 drupal이 설치된 웹사이트의 문서 최상위 디렉토리로 이동합니다. 여러분이 서브디렉토리로 설치를 하였다면 이 창에서 웹 사이트로 보이지 않을 것입니다. * 우측클릭을 해서 속성의 사용자 에러 탭을 선택합니다. * HTTP 404 및 405 에러줄을 MessageType=URL로 바꾸고 URL을 /index.php로 설정한다. 여러분이 drupal을 서브 디렉토리에 설치하여 사용중일 경우, 여러분의 서브 디렉토리 경로를 /index.php 앞에 명기합니다. * 아래의 코드를 /sites/default/settings.php에 붙여 넣습니다.(아래의 소스코드는 코멘트 글에 의하면 버그가 존재합니다. 확인하고 사용하도록 합니다.) 처음의 두 줄은 사용자에게 알맞도록 수정되어야 합니다. 여러분이 서브디렉토를 사용하지 않는다면 $sub_directroy를 ""로 설정합니다. 그리고 나서 $active=1로 설정을 한고난후 드루팔을 즐기면 됩니다. {{{ <?php // CONFIGURATION $sub_dir = "/41/"; // enter a subdirectory, if any. otherwise, use "" $active = 0; // set to 1 if using clean URLS with IIS // CODE if ($active && strstr($_SERVER["QUERY_STRING"], ";")) { $qs = explode(";", $_SERVER["QUERY_STRING"]); $url = array_pop($qs); $parts = parse_url($url); unset($_GET, $_SERVER['QUERY_STRING']); // remove cruft added by IIS if ($sub_dir) { $parts["path"] = substr($parts["path"], strlen($sub_dir)); } $_GET["q"] = trim($parts["path"], "/"); $_SERVER["REQUEST_URI"] = $parts["path"]; if ($parts["query"]) { $_SERVER["REQUEST_URI"] .= '?'. $parts["query"]; $_SERVER["QUERY_STRING"] = $parts["query"]; $_SERVER["ARGV"] = array($parts["query"]); parse_str($parts['query'], $arr); $_GET = array_merge($_GET, $arr); $_REQUEST = array_merge($_REQUEST, $arr); } } ?> }}} * 이과정에서 여러분은 깔끔한 URL을 사용하여 페이지에 대한 요청을 할수 있을것이며 그 결과로 알맞은 페이지를 받아 보게 될것입니다. 예로 첫번째 노드내용을 보기위하여 /nede/1 을 요청한다면 q= 문법ㅇ르 사용하지 않고 적절한 첫번째 페이지를 볼수 있을것입니다. 만일 IIS에러를 만나게 된다면 여러분은 문제에 봉착한것입니다. 다시한번 위의 내용을 반복하여 다시 테스트 해보길 바랍니다. * index.php?1=admin/system 항목에서 깔끔한 URLS 를 활성화 시킵니다. php.ini의 에러보고 단계가 높게 설정 하여 여러분의 페이지에 있는 에러를 볼수 있습니다. 아래의 설정을 추가하여 시험해 볼수 있습니다. {{{ error_reporting = E_ALL & ~E_NOTICE }}} '''주의''': 이러한 방법은 IIS5에서 동작하지만 IIS6에서는 그렇지 않습니다. ISAPI_Rwrite 기능을 사용한 접근방법을 확인하기 위해 이 글을 참조 하십시요. ===== 403에러와 404에러 페이지 설정하기 ===== drupal의 페이지 에러 메시지는 직접적이고 촛점이 맞추어진 의미 입니다. drupal은 여러분이 페이지의 에러메시지를 좀더 사용자에게 친숙하게 만들기를 원한다면 이들을수정할수 있는 방법을 제공하며 아래의 진행과정에 따라서 진행됩니다. 두개의 노드를 만듭니다 이들은 각각 페이지 에러 (405 과 404) 에 이용되어질 것입니다. 여러분이 사용자들이 보게될 페이지로 이동시키기 위한 노드의 아이디번호를 결정 합니다. 노드를 확인하는 방법으로서는 직접 노드에 접근하여 주소창의 맨마지막 슬래쉬 뒤에 있는 번호를 확인해보면 됩니다. 이제 여러분의 노드와 경로를 적절한 폼에 넣도록 합니다. 예를 들어 403에러에 관한 노드가 83번이라면 설정의 "Default 403(access denied) page" 항목에 node/84 이라고 입력합니다. ===== 여러분의 사이트 에러보고 설정하기 ===== drupal은 php 및 SQL 에 관한 에러를 수집하여 보관합니다. 생산된 서버에서는 단지 에러에 관한 기록을, 테스트서버에서는 에러와 여러 도움이 될만한 기록을 보여줄수 있습니다. 기본적으로 에러는 화면상에서 조회 됩니다. 여러분은 여러분의 제작완료된 사이트를 위하여 에러로그 항목을 "Write errors only to log"로 설정 할수 있습니다. 여러분은 지정된 시간이 지난 로그를 자동적으로 삭제하도록 drupal을 설정할수 있습니다. 이것은 crontab(yoursite.com/cron.php)의 설정이 필수적입니다. 설정을 위하여 install.txt파일의 6번째 항목을 참고 하십시요. ===== 캐쉬 지원 ===== 바쁘게 돌아가는 drupal사이트에서는 페이지의 표시 속도향상과 서버의 부하를 줄이기 위하여 페이지들을 캐쉬하고자 할수 있습니다. 보통 여러분이 페이지에 방문을 하게되면 웹 브라우저에 표시하기 위한 데이터를 포함하는 HTML 생성하기위한 데이터를 데이터베이스에서 가져오기 위하여 많은 횟수의 조회를 하게됩니다. 여러가지의 모듈을 설치한 큰 사이트이거나 내용이 많이 페이지등은 이러한 조회의 숫자를 수십번에 수백번까지 증가하도록 만듭니다. 보통 여러분들은 컴퓨터가 매우 빠르고 drupal이 효율적으로 설계되어 있기때문에 이러한 사항에 주의를 기울이지 않습니다. 그러나 분당 수백 수천의 페이지 요청이 있는 매우 바쁜 사이트에서는 각각의 페이지를 보여주기 위한 작업의 양으로 인하여 서버가 느려지기 시작할것입니다. 이러한 바쁜서버를 위하여 drupal의 페이지 캐쉬 기능을 활성화 시켜 페이지를 생성하는 일의 양을 줄일수 있습니다. 캐쉬 기능이 활성화 되면 드루팔은 익명사용자가 방문한 페이지의 전체 HTML 코드를 데이터베이스에 직접 저장하고, 또다른 요청이 같은 페이지에 대해서 다시 들어오게되면, 드라팔은 이페이지의 내용을 다시 조각조각 만드는것이 아니라 전에 저장해 두었던 페이지를 그대로 보여주게 됩니다. 결과적으로 수십에서 수백번의 조회를 통하여 만들어진 페이지를 한번의 조회로 보여주게 됨으로써 웹서버의 부하를 눈에 띄게 줄일수 있습니다. ===== 파일 시스템 설정 ===== 드루팔은 사용자와 관리자가 어떻게든 파일을 업로드 하여 관리 할수 있도록 설정될수있습니다. '''주의''': 설정이 안되어 있거나 부적절한 설정으로 드루팔이 설치되어 있다면 설정항목에서 하나 똔느 여러개의 에러메시지를 확인할수 있으며, 이중 "Temporary directory" 또는 "File system path"의 경우 디렉토리가 생성되어 있지 않거나 사용권한이 알맞이 않은 경우 입니다. 간단히 관련된 디렉토리를 만들고 드루팔이 이 디렉토리에 대하여 읽고 쓸수 있는 권한을 적당히 부여 하십시요. 만일 여러분이 이러한 디렉토리 만들기와 디렉토리의 사용권한을 바꾸는 방법을 모를경우 여러분의 호스트 관리자와 접촉해 보십시요. ===== 다운로드 방식 ===== "public"과 "private"두가지 방식으로 설정될수 있습니다. 이러한 상황이라면 "public"으로 설정하십시오: 익명사용자를 포함한 어떠한 사용자도 신경쓰지 않고 다른 유저에 의하여 업로드된 파일의 다운로드가 가능하도록 할경우. 이러한 상황이라면 "private"으로 설정하십시오: 다른유저에 의해 업로드되어지 파일의 다운로드 하고자 하는 사용자에 대한 제한을 원할경우. 이 설정 항목 밑에 적혀 있는 "여러분은 이 기능을 언제든 설정할수 있습니다. 하지만 모든 다운로드 URL이 바뀌므로 예상치 못한 에러가 발생 할수 있으므로 권장하지 않습니다"라는 경고 문구에 주의 하십시요. 이러한 문제를 해결하기 위해서 우리는 전체 유저에 대하여 파일을 다운로드 할수있게 하더라도 "다운로드 방식"을 "private"로 설정하여 다운로드의 가능여부에 대한 결정을 drupal을 지시하여 하도록 권장합니다. ===== 경로 설정 ===== 파일 시스템 경로 기본적으로 이 항목은 "files"로 설정 되어 있으며 우리는 이것을 그대로 놔 두는것을 추천 합니다. 임시 디렉토리 기본적으로 이 디렉토리는 GNU/LINUX시스템의 기본 임시 디렉토리인 "/tmp" 로 되어 있습니다. 여러분이 윈도우나 다른 시스템을 사용하는 경우 우리는 슬래쉬가 없는 "tmp"로 지정하는것을 권장합니다. 드루팔은 자동으로 파일시스템 밑에 임시 디렉토를 생성하게 될 것입니다. 다른 설정이나 사용권 조정에 의해서 위와 같이 진행되지 않는다면 여러분은 수동으로 이 설정을 진행할 수 있습니다. ===== 날짜와 시간 설정 ===== 드루팔은 여러분의 사이트에서 시간의 표시및 표시방법에 대해서 설정할수 있습니다. 표시방법을 설정하고자 할때는 여러분은 당연히 방문자들의 사용방식을 고려해야 합니다. 아래에 선택할수 있는 "Default time zone(기본 시간대)"와 "Configurable time zones(설정가능한 시간대)"의 선택사항을 표시합니다. 대부분의 사용자가 작은 지역적인 한계내에 살고 있는경우: "Default time zone"을 살고 있는 지역으로 설정하고 "Configurable time zone"을 비활성화 시킵니다. 대부분의 사용자가 국한된 몇개의 시간대에 흩어져 살고 있는경우: "Default time zone"을 기준으로 생각되는 표준 시간대로 설정하고 "Configurable time zone"을 비활성화 시킵니다. 예를 들어 미국에서라면 여러분은 여러분의 사이트를 동부 표준 시간대로 설정 할수 있습니다. 사용자가 전세계적으로 흩어져 살고 있는경우: "Default time zone"을 그리니치 표준시간대로 설정(GMT (+0000)) 하고 "Configurable time zone"을 활성화 시킵니다. ==== 인터페이스의 사용자 설정 하기 ==== 새로운 드루팔 사이트를 여는 경우. 이곳을 참조하여 여러분의 드루팔 사이트의 디자인과 구조를 개인화 하여 사용할수 있습니다. * 테마 선택하기. 여러분이 선택하여 적용하기를 원하는 전체적인 모양과 느낌을 테마를 통하여 전체적으로 관리합니다. 사이트가 여러가지의 테마를 가지고 있을수 있습니다. 첫번째로 시작하는 좋은 방법은 administer > themes에 접근하여 새로운 테마를 여러분의 기본으로 설정하는 것입니다. 여러분은 보다 많은 테마를 다운로드 페이지에 접속하여 찾아 볼수 있습니다. 여러분이 새로운 테마를 다운로드 받았다면 적용하기전에 여러분의 시스템에 설치가 되어야 합니다. * 여러분 자신의 테마를 만들기. 많은 드루팔 사이트들이 미리 구성되어진 테마 대신 유일한 모양을 요구하게 됩니다. 그래서 많은 개발자들이 자신의 테마를 자신들이 작성하기를 원합니다. 테마의 개발에는 HTML/CSS를 운영하고 여러분의 테마의 복잡성에 따라 기본적인 PHP 운용 지식이 필요합니다. * 네비게이션(항해) 항목 사용자 설정하기 페이지의 최상단과 최하단에 보여질 내용은 administer > setting에서 설정되어 집니다. 탭을 선택하여 하단으로 내려 메뉴를 선택합니다.주링크와 부수링크가 이곳에서 직접 HTML로 작성되어 적용될수 있습니다. 만일 주 링크가 비어 있다면 여러분의 네비게이션은 여러분이 선택한 모듈에 의하여 생성되게 될것입니다. 각각의 테마는 숨겨진 설정페이지(테마>전체설정 페이지의 최상단에 차례로 씌여진)를 가지고 있습니다. 불행하게도 만일 여러분이 PHPTemplate 테마 엔진을 사용하는 테마를 적용하고 있다면, 여러분의 네비게이션은 테마설정의 숨겨진 영역에서 지정되어야 합니다.(primary and secondary link functionality is restared 항목을 참고 하십시요.) * 문자열 사용자 설정하기 드루팔은 여러 다른 언어에서 사용되어 질수 있도록 설계 되었기 때문에 거의 모든 언어를 개인화 할수 있으며 문자열을 국가별 설정에 따라 설정할수 있는 기능을 가지고 있습니다. 사실 여러분은 "Create blog entry"와 같은 문자열을 이미지 태그를 이용한 HTML을 통하여 이미지로 나타낼수 있습니다. ==== 사용자 로그인을 사용자 설정하기. ==== 기본적으로 드루팔의 로그인 블럭은 사용자가 로그인하고 있지 않은상황이면 항상 보여지도록 설정되어 있습니다. 이것은 항상 바라는 상황이 아닐수도 있습니다. 예를 들어 여러분이 드루팔을 이용하여 아주 적은숫자의 사람들만이 로그인 하여 컨텐츠를 생성하거나 수정하는 사이트를 만들었다면, 여러분은 여러분의 스크린의 실제적인 큰 영역을 로그인 블럭과 그와 관련된 부분에 할당하고 싶지는 않을 것입니다. 또한 이와 같은것은 선택사항으로 로그인을 하지 않아도 되는 사용자들에게는 혼동을 줄수 있는 주요한 원인이 될것입니다. * 로그인 블럭을 비 활성화 시키기위해서: * 블럭 설정 항목으로 이동합니다. (administer > blocks) * 사용자 로그인 설정항목의 체크박스를 해제하여 비활성화 시킵니다. 여러분의 내용물 게시자와 관리자자는 여전히 http://www.examle.com/q=user 의 주소를 사용하여 로그인 화면에 직접 접근 할수 있습니다. 또한 여러분은 여러분의 요구에 의한 로그인 블럭을 만들수 있습니다. [[BR]] http://drupal.org/node/17272 참조 ==== 최종 사용자 안내 ==== 작업자의글 )) 글의 길이가 길어져 DrupalHandbookForEndUser 로 나누었습니다. [[BR]] 상기의 내용이 드루팔을 설정하는 방법이라면 이번내용은 드루팔 사이트에 접속하여 사용하는 방법에 대해서 언급되어 있습니다. |
The universe is laughing behind your back. |