smarty install のメモやらログやらっぽいもの
安定版の最新ファイル探してくる
Smarty - Downloads
ここから落としてきましょう。
今回は、
http://www.smarty.net/do_download.php?download_file=Smarty-2.6.26.tar.gz
これ使った。
stableだったので。
install
参考にしたのはここ、
PHP Evo Smartyのインストール
お世話になりましたm(_ _)m
cd /tmp/ wget http://www.smarty.net/do_download.php?download_file=Smarty-2.6.26.tar.gz tar zxvf Smarty-2.6.26.tar.gz cd Smarty mv libs /usr/local/lib/php/Smarty
ま、解凍するだけです。
Smartyをphpが認識するようにpath通す
方法は何個かあるらしい。
Smarty
こちらで4つの方法が書いてある
- 手動で SMARTY_DIR 定数を定義する
- ライブラリファイルの絶対パスを指定する
- php.ini ファイルにライブラリへのパスを追加する
- PHP スクリプト内での ini_set() によるインクルードパスの追加
今回は、
- php.ini ファイルにライブラリへのパスを追加する
で対応しました
vi /usr/local/lib/php.ini
include_path = ".:/usr/local/lib/php:/usr/local/lib/php/Smarty"
apache restart
test
<?php require_once('Smarty.class.php'); $smarty = new Smarty(); ?>
こんなファイル作って、適当にみてみる。
エラーでなければ、path通ってる
エラーになったら、【Smartyをphpが認識するようにpath通す】をもう一度見直す。
他の方法も試してみたり。
smarty を使ってみる
・Smarty は、デフォルトで templates/、 templates_c/、configs/ および cache/ と名づけられた4つのディレクトリが必要です。
・これらの名前は、それぞれ Smarty クラスのプロパティ $template_dir、 $compile_dir、 $config_dir および $cache_dir で定義することができます。
・Smarty を使用する各アプリケーションにおいて、 これらのディレクトリを個別に設置する事を強く推奨します。
らしい
ここは素直に従う。
mkdir smarty_test cd smarty_test
一個、テスト用のDir掘って
mkdir templates mkdir templates_c mkdir configs mkdir cache mkdir htdocs
※注意
Smarty は $compile_dir と $cache_dir (templates_c/ と cache/) に 書き込み権限 でアクセスする必要があるので、 web サーバのユーザがこれらに書き込める必要があります
らしい。
なので、templates_c/ と cache/ は chmod 770 と、ユーザ名とグループ名の変更をしておく。
ユーザ名とグループ名は apache を利用する場合は、httpd.conf に書いてあるので、それをみて chownする。
smarty作成ユーザと apache のユーザが一緒なら(自分だけのテスト環境とか?)、変える必要はないかな。
できた階層構造はこんな感じ
/var/www/smarty_test/ templates/ index.tpl templates_c/ configs/ cache/ htdocs/ index.php
htdocsというDirを掘ったのは、下記のような理由があるらしい。
あなたは web サーバのドキュメントルートの位置を知っている必要があります。 例ではドキュメントルートは /web/www.example.com/guestbook/htdocs/ とします。Smarty ディレクトリは Smarty ライブラリによってのみアクセスされ、 web ブラウザから直接アクセスされる事はありません。 したがってセキュリティの心配を避けるために、 これらのディレクトリをドキュメントルートの 外部 に配置する事を推奨します (ただし必須ではありません)。
とのこと。
つまり、webブラウザでURL直打って、index.tplファイルとか見られちゃまずいから、rootDirの外におきましょう、って事らしい。
なるほど。
templates/index.tpl
中身はとりあえず簡単に、
{* Smarty *} こんにちは、{$name}。ようこそ Smarty へ!
こんな感じ。
{* *}
はsmartyのコメントアウト記法らしい。
こう書けば、smartyファイルって分かりやすいから、習慣つけとけよー、って書いてあったので書いてみる。
htdocs/index.php
実際にwebブラウザから叩くであろうファイルは、こんな感じ
<?php require_once('Smarty.class.php'); $smarty = new Smarty(); #まぁ、絶対パスで書いた方がいいかも $smarty->template_dir = '../templates/'; $smarty->compile_dir = '../templates_c/'; $smarty->config_dir = '../configs/'; $smarty->cache_dir = '../cache/'; $smarty->assign('name','Ryoff');#nameという名前でRyoffという値を送る $smarty->display('index.tpl');#テンプレ指定 ?>