본문 바로가기

데비안 리눅스 설치 가이드/APM

[APM] 데비안 웹서버 구축 2부 - (Smarty OR Template_) 설치 및 설정

반응형

소개



1부에 따라 데비안 7에 APM을 설치했다.

PHP5를 설치했으므로 PHP 사용시 좀더 편안한 이용이 가능하도록 템플릿을 설치해보도록 한다.


PHP용 템플릿으로는 대표적으로 Smarty가 있다. 국내에서도 만든 템플릿이 있는데, 바로 템플릿언더바(Template_)다.

템플릿은 하나만 설치하면 되므로 위 2가지중 1가지만 설치하면 된다.


우선 전세계적으로 가장 많이 사용하는 Smarty를 받아서 설치해 보고 정상적으로 설치가 됐는지 확인해 보도록 하겠다.




Smarty 설치


Smarty를 받기 위해 홈페이지 www.smarty.net 에서 다운로드 페이지로 이동한다.


최신 버전을 직접 다운로드 받지 않고 명령어를 통해 다운받을 것이므로 파일 링크를 오른쪽 클릭으로 다운로드 링크 URL을 복사한다.


다운로드한 디렉토리를 만들고 해당 디렉토리로 이동한다.

mkdir /home/server/template

cd /home/server/template


wget 명령어를 통해 금방전 복사한 링크를 통해 Smarty 파일을 다운로드 받는다. 복사된 링크는 버전에 따라 다르므로 꼭 홈페이지를 통해 링크를 변경하도록 한다.

wget http://www.smarty.net/files/Smarty-3.1.13.tar.gz


만약 wget이라는 명령어가 없다고 나온다면 install 한다.

apt-get install wget


이제 디렉토리를 보면 1개의 tar.gz 압축파일이 받아져 있다. 이것을 tar 명령어를 이용해 압축을 해제하도록 한다.

tar xvfz Smarty-3.1.13.tar.gz


여기서 잠깐 디렉토리 구조를 확인해 보면 현재 아래와 같이 되어 있다.


/home/server/web/index.html과 phpinfo,php 파일

/home/server/template/Smarty 템플릿 압축 파일과 압축 해제한 파일들


이제 압축 해제한 디렉토리의 이름을 간단하게 Smarty로 고치도록 하여 시인성 편리성을 높이도록 하자.

mv Smarty-3.1.13 smarty


순서에 맞춰 잘 해왔다면 아래에 이런 파일과 디렉토리들이 있을 것이다. 아래와 같은 위치에 없다면 재수정 하도록 해주자.

/home/server/template/smarty/libs/Smarty.class.php

/home/server/template/smarty/libs/SmartyBC.class.php

/home/server/template/smarty/libs/debug.tpl

/home/server/template/smarty/libs/plugins

/home/server/template/smarty/libs/sysplugins



Smarty가 컴파일 할때 필요한 디렉토리를 만들고 소유권과 권한을 주도록 하자.

디렉토리를 만들때는 web 디렉토리 안에서 만들도록 한다.

cd /home/server/web
mkdir templates templates_c cache configs


4개의 디렉토리를 생성했다. 여기서 Smarty가 컴파일 할때 쓰기가 필요한 2개의 디렉토리에 소유권과 쓰기권한을 줘야한다.


우선 수정권 chmod를 이용해 쓰기가 가능하도록 해준다.

(권한에 대해 잘 모르면 이글을 읽자. 리눅스 권한 설정 )

chmod 775 templates_c cache


이제 디렉토리의 소유권을 root에서 다른 계정 소유권으로 변경하자.

변경해줄 소유권 id는 웹서비스를 해주는 apache2를 실행하는 소유자 id다.

apache2가 파일에 접근해서 읽기 시작하면 자동적으로 컴파일 되는 소유권자는 apache2가 되므로 apache2의 소유자 계정 값을 주면 된다.

chown www-data:www-data templates_c cache


chown을 통해 root에서 www-data 소유로 바꿨다. 여기서 왜 www-data라는 값이 나온지 모른다면 프로세스 보기 , 계정 관리 글을 읽어보자.



이제 Smarty가 정상적으로 이용이 가능한지 테스트 해보자.


apache2가 바라보는 디렉토리인 web으로 이동하여 index.php파일을 아래의 명령어와 내용을 통해 저장한다.

cd /home/server/web

vi index.php


<?php


require('/home/server/template/smarty/libs/Smarty.class.php');

$smarty = new Smarty();

// $smarty->testInstall(); 에러 발생시 테스트 위해 주석을 해제해 볼 것.


$smarty->setTemplateDir('/home/server/web/templates');

$smarty->setCompileDir('/home/server/web/templates_c');

$smarty->setCacheDir('/home/server/web/cache');

$smarty->setConfigDir('/home/server/web/configs');


$smarty->assign('name', 'John Valentine');

$smarty->display('index.tpl');


?>


index.php에 적은 내용을 잘 보면 require가 가리키는 디렉토리가 압축을 푼 Smarty 내부의 값을 가리키는 것을 알 수 있다. Smarty의 경로가 다른경우 해당 위치의 디렉토리 값으로 변경해준다.

setTemplateDir 등 나머지 4곳의 위치 또한 실제 생성된 디렉토리에 맞게 변경해도 무방하다.


이제 index.tpl 파일을 작성해 보자.

cd /templates 

vi index.tpl


index.tpl의 내용은 아래와 같다.


		<html>
<head>
<title>My WebServer</title>
</head>
<body>
{$name}'s First WebServer
</body>
</html>
	

여기서 {$name}는 index.php에 적었던 John Valentine으로 치환되어 브라우저에 표시된다.


브라우저를 통해 /index.php로 접속하면 아래처럼 화면이 나타난다. 만약 제대로 값이 나타나지 않으면 $smarty->testInstall(); 주석을 해제해 에러값을 확인해 본다.

아래처럼 나타난다면 정상적으로 Smarty가 설치된 것이다.






이제 Smarty 템플릿을 통해 웹페이지를 작성 할 수 있게 됐다.




Template_ 설치


Smarty 설치의 앞부분을 참조하여 template 디렉토리를 만들고 다시 Template_ 디렉토리를 생성한다. 그리고 그 위치에서 wget으로 Template_를 받는다. (www.xtac.net)




tar 명령어를 사용해 받은 tar.gz을 /template_ 디렉토리를 생성하고 나서 압축 해제한다.

tar xvfz index.html?file=Template_.2.2.7.tar.gz


이 순서대로 했다면 아래와 같은 경로에 다음 파일과 디렉토리가 있게 된다.

/home/server/template/Template_/Template_.class.php

/home/server/template/Template_/Template_.compiler.php

/home/server/template/Template_/tpl_plugin


이제 컴파일 디렉토리와 템플릿 파일을 저장할 디렉토리를 생성하자.

cd /home/server/web

mkdir _compile _template

Smarty를 설정했던 것과 똑같이 소유권과 모드를 _compile 디렉토리에 적용해야 한다. Smarty 설치를 참조하도록 한다.

chmod 775 _compile
chown www-data:www-data _compile



이제 Template_.class.php를 설정하도록 하자.

vi Template_.class.php


Template_.class.php 파일의 내용 중 일부다 여기서 아까 생성한 _compile과 _template 디렉토리 위치로 바꿔 저장하도록 한다.

<?php


// Template_ 2.2.7 2012-07-20 http://www.xtac.net Freeware - LGPL


class Template_

{

        var $compile_check = true;

        var $compile_dir   = '/home/server/web/_compile';

        var $compile_ext   = 'php';

        var $skin          = '';

        var $notice        = false;

        var $path_digest   = false;


        var $template_dir  = '/home/server/web/_template';

        var $prefilter     = '';

        var $postfilter    = '';

...

...


설치하고 설정한 Template_가 정상적으로 동작하는지 테스트 파일을 만들어 테스트 해보자.

cd /home/server/web

vi index2.php


index2.php 파일에 아래 내용을 넣고 저장하도록 한다.


		<?php
include '/home/server/template/Template_/Template_.class.php';
$tpl = new Template_;
$tpl->define('index2', 'index2.tpl');
$tpl->assign(array(
'title'=>'My WebServer',
'content'=>'John Valentine',
));
$tpl->print_('index2');
?>
	


마찬가지로 index2.tpl 파일도 저장한다.

cd /home/server/web/_template

vi index2.tpl


index2.tpl 파일 내용

		
<html>
<head>
<title>{title}</title>
</head>
<body>
{content}'s First WebServer
</body>
</html>
		
	

이제 브라우저를 통해 /index2.php로 접속하여 아래와 같이 나타난다면 정상적으로 작동한 것이다.







지금까지 PHP5를 지원하는 2가지의 템플릿을 설치하고 간단히 실행을 통해 정상적으로 동작하는지까지 확인했다.


복잡해 보이지만 따라서 하면 쉽게 할 수 있을 것이다.


웹 서버 구축 3부에서는 코드 버전을 관리하는 형상도구인 SVN을 설치하고 설정을 해보도록 하자.




2013/03/17 - [컴퓨터/Debian] - [Debian] 웹서버 구축 1부 (Apache+PHP+MySQL) 설치 및 설정

2013/05/03 - [컴퓨터/Debian] - [Debian] 웹서버 구축 3부 SVN (Subversion) 설치 및 설정



반응형