'Smarty 설치'에 해당되는 글 1

  1. 2009.12.23 Smarty 설치하기
프로그래밍.../Smarty | Posted by 고기킬러 2009. 12. 23. 10:04

Smarty 설치하기

INSTALLATION (설치하기)
-----------------------

Smarty 압축 파일을 풀면 당신은 Smarty.class.php, Smarty_Compiler.class.php,
Config_File.class.php 그리고 "plugins" 디렉토리 같은 여러 파일들을 볼 수 있을 텐데
우선 이 모든 파일들을 당신의 PHP include_path에 지정되어 있는 디렉토리 어딘가에 옮
길 필요가 있어요. 그러고 나서 PHP 스크립트에[역주: 원문에서는 PHP 스크립트라고 하
는 대신 "your application"이라고 했지만, 이 편이 더 이해가 빠를 것 같아 이렇게 번역
했습니다] require("Smarty.class.php") 문장을 적어주면 해당 클래스를 찾을 수 있게 되
겠지요. 음, 하지만 다른 방법으로 당신의 PHP 스크립트에 SMARTY_DIR 상수를 설정하는 방
법도 있어요. Smarty 클래스 파일들이 위치한 패스가 있는 디렉토리들은 이 두 가지 방식
을 사용할 수 있는데, 여기서 매우 중요한 것 하나는 SMARTY_DIR 패스를 지정할 때는 끝에
슬래쉬를 꼭 붙여야 한다는 것이겠죠!

자 그럼 이제 실제로 당신의 웹 서버의 Document Root 디렉토리 어딘가로 시야를 옮겨 보
도록 하지요. 이 가이드에서는 당신이 웹 서버의 Document Root에 만들 디렉토리 이름으
로 Smarty를 사용할 텐데, 모든 작업은 여기에서 이루어지고 있음을 잊지 마세요.


$> cd /home/htdocs
$> mkdir Smarty
$> cd Smarty


다음 차례는 Smarty가 사용할 디렉토리들을 만들 차례가 되겠군요.


$> mkdir templates
$> mkdir templates_c
$> mkdir configs


Smarty는 쓰기가 가능한 templates_c 디렉토리를 필요로 한답니다. 그러므로 당연히 당신
은 해당 디렉토리를 웹 서버 유저(보통 Unix에서는 "nobody:nobody"이 사용되고 Max OS에
서는 "www:www"이 사용되지요.[역주:레드햇 리눅스에서는 "apache:apache"가 사용됩니다])
가 쓰기가 가능하도록 해당 디렉토리의 소유주와 퍼미션을 아래와 같이 고쳐주어야겠지요.

물론 당신은 'chmod 777'을 사용할 수도 있어요. 음 그렇지만, 글쎄요. 많은 사용자들이
사용하는 시스템에서는 보안 문제도 있고 하니 별로 권장하고 싶지는 않군요. 이것에 대
해서는 메뉴얼에서 보다 많은 정보를 찾아보는 것이 좋을 것 같군요.


$> chown nobody:nobody templates_c
$> chmod 700 templates_c
$> ls -l
drwxrwxr-x 2 user group 512 Jan 18 14:18 configs/
drwxrwxr-x 2 user group 512 Jan 18 14:18 templates/
drwx------ 2 nobody nobody 512 Jan 18 14:18 templates_c/


위와 같이 하거나 덜 안전한 방법으로 아래와 같이 해 줄 수도 있어요.


$> chmod 777 templates_c
$> ls -l
drwxrwxr-x 2 user group 512 Jan 18 14:18 configs/
drwxrwxr-x 2 user group 512 Jan 18 14:18 templates/
drwxrwxrwx 2 user group 512 Jan 18 14:18 templates_c/


자 이제 당신은 index.php와 templates/index.tpl이라는 두 개의 파일을 만들 차례가 되
었네요. 물론 index.php는 당신의 웹 브라우져에서 부를 수 있는 것이어야겠지요.

index.tpl은 Smarty가 템플릿 파일로서 사용할 파일인데, 이것은 브라우져에서 직접 엑세
스되지는 않고, 오직 Smarty 클래스에 의해서만 접근된답니다[역주:실제로 위와 같이 하
면 웹 서버에 특별한 설정을 추가하지 않는 웹 브라우져를 통해 접근할 수 있습니다].


--------- index.php --------
<?php
require("Smarty.class.php");
$smarty = new Smarty;
$smarty->assign("Name","Ned");
$smarty->display("index.tpl");
?>


--------- templates/index.tpl --------
<HTML>
<TITLE>Hello</TITLE>
<BODY>
Hello, {$Name}!
</BODY>
</HTML>


자 이제 잘 작동하고 있는지 index.php를 당신의 웹 브라우져로부터 불러 보세요.

http://your.host.com/Smarty/index.php

당신의 브라우져로부터 "Hello, Ned!"를 볼 수 있나요? 그렇지 않다면 지금까지 위에서
해 온 과정들을 잘 따라 했는지 살펴보시고 다시 시도해 보세요. 아니면 메뉴얼에 있는
설치 작업에 관한 부분을 체크해 보고, 당신이 PHP 설치를 제대로 했는지도 살펴볼 필요
가 있을 거에요. 그래도 여전히 문제가 있다면 메일링 리스트에 질문을 던져 보던가 FAQ
에서 문제를 해결할 수 있을지도 모르겠네요.

이제 "Hello, Ned!"를 브라우져로부터 볼 수 있다구요? 좋아요~[역주: 차범근 스타일로
읽어 보세요. :)]

Smarty가 index.tpl를 어떻게 php 스크립트로 컴파일했는지 궁금하시다면 templates_c 디
렉토리를 찾아보시면 알 수 있어요. Smarty는 이렇게 맨 처음 한번만 컴파일하고 그 다음
에는 게속 이 컴파일된 스크립트를 가지고 작동하게 된답니다. 물론 index.tpl이 바뀌게
된다면 자동으로 재컴파일해서 대체하게 되지요[역주:이것은 JSP가 채택하고 있는 방식과
굉장히 유사하다고 볼 수 있습니다].

이런 이유로 당신은 templates_c 디렉토리에 대해서는 관심을 끄셔도 좋아요. 당신은 이
런 기술적 부분에 대해서 걱정할 필요가 하나도 없고, 이런 부분은 Smarty에게 떠넘겨 버
리면 되요. 참, 그리고 당신은 템플릿으로부터 컴파일된 PHP 스크립트를 볼 수 있고 그것
을 아마 고칠 수도 있을 거에요 하지만, 이것들을 고칠 생각은 절대로 하지 않는 게 신상
에 이로울 테죠?

여기까지 잘 되었다면, 이제 당신은 잘 작동하는 Smarty를 가지게 되었으므로 이제
Smarty에서 사용하고 있는 템플릿 언어의 특징들 중 몇 가지를 살펴보도록 하지요.


출처 : PHP SCHOOL
역자 : 조한석 님 <sizer@systong.co.kr>