ウェブ、ショウジン

Smartyのインストールとセットアップ

2009-1-10
Category
PHP

Smartyをインストールして、利用したいアプリケーションのディレクトリでサンプル画面を表示するまでの設定とその流れをメモ。けっこうディレクトリが入り組んでくるので注意してやること。(案の定間違えてて少しはまったし)

http://www.smarty.net/
最新の安定版をダウンロードする。

ダウンロードしたSmarty-2.6.22.zipを解凍。

ドキュメントルートにSmartyという名前のディレクトリを作成する。

今回は
/opt/local/apache2/htdocs/php_mysql/myapp
内で利用するので
/opt/local/apache2/htdocs
にSmartyディレクトリを作成する。

ちなみに、ドキュメントルートを調べるには以下のPHPスクリプトが使える。

<?php
echo $_SERVER["DOCUMENT_ROOT"];
?>

解凍したSmartyのlibsディレクトリ内にある全てを、作成した/htdocs/Smartyディレクトリにコピーする。するとSmartyディレクトリ内は以下の構成になっている。

Config_File.class.php(ファイル)
debug.tpl(ファイル)
internals(フォルダ)
plugins(フォルダ)
Smarty_Compiler.class.php(ファイル)
Smarty.class.php(ファイル)

Smartyを使用するアプリケーションにおいては、四つのディレクトリを設定する必要がある。ドキュメントルート(/opt/local/apache2/htdocs)にmyappという名前のディレクトリを作成(この名前は好きにつけて良い)し、この中にまたsmartyディレクトリを作成する。そして、このsmartyディレクトリ内に以下の四つのディレクトリを作成する。

myapp/smarty/templates
myapp/smarty/templates_c
myapp/smarty/cache
myapp/smarty/configs

上記ディレクトリのうち、templates_cとcacheにはWebサーバからの書き込みを許可しておく必要がある。
(Webサーバに書き込み権限を付与しておく)

WebサーバはApacheを使用しているので/opt/local/apache2/conf/httpd.confを確認すると「User www」「Group www」の記述があった。(OSXの場合は、デフォルトではユーザが「www」でグループも「www」らしい)

以上を踏まえて、ユーザwwwにtemplates_cディレクトリとcacheディレクトリへの書き込み権限を付与することにする。

両ディレクトリの所有者をchownコマンドでwwwに変更する。こうすることでユーザwwwによる「読み」「書き」の権限が与えられる。(変更はスーパーユーザかsudoでないと実行できない)

myapp/smarty/にコマンドラインで移動して

$ sudo chown www cache
$ sudo chown www templates_c

【サンプルスクリプトの作成】

/myapp/config.phpを作成して、使用するディレクトリへのパス指定等の設定をする。

追記:09/01/02
各ディレクトリへのパスは必ずしも指定しなくてもよさそうな気もしてきた。以下URL参照のこと。
http://mylearning.jugem.jp/?eid=10

config.php

<?php
    // Smarty.class.phpへのパスを設定する
    require($_SERVER['DOCUMENT_ROOT'].'/Smarty/Smarty.class.php');

    // Smartyオブジェクトの作成
    $smarty = new Smarty();

    // 使用する各ディレクトリへのパスを指定
    $smarty -> template_dir = 'smarty/templates';
    $smarty -> compile_dir = 'smarty/templates_c';
    $smarty -> cache_dir = 'smarty/cache';
    $smarty -> config_dir = 'smarty/configs';
?>

続いて、/myapp/sample.phpを作成する。

sample.php

<?php
    // 設定ファイルを読み込む
    require_once("config.php");

    // 変数を割り当てる
    $smarty -> assign('test', '123');

    // 表示させるためのテンプレートを指定する
    $smarty -> display('sample.tpl');
?>

【サンプルテンプレート作成】

myapp/smarty/templatesにsample.tplを作成する。

sample.tpl

<html>
<head>
    <title>Smarty</title>
</head>
<body>
It's as easy as {$test}.
</body>
</html>

ブラウザで

http://localhost/myapp/sample.php

にアクセスすると「It’s as easy as 123. 」が表示されることを確認。

これで、とりあえずsmartyを利用することが出来る。

以上、初めてのPHP & MySQL 第2版より。

Categories

Tag Cloud

AdMob Android Apache centos CodeIgniter EC-CUBE facebookアプリ facebookページ feed Firefox Flash google googleanalytics htaccess iPad iPhone JavaScript lamp mobile nginx ogp pear php plugin rollover rss sendmail setting smarty ssh Titanium Mobile Titanium Studio tutorial ubuntu vim VirtualBox vmware vps Windows WordPress xampp youtube さくらインターネット アクセス解析 カスタム投稿