第1回 Smartyの紹介 - Smarty講座
yossy先生のSmarty講座
Lecutures on PHP
第1回 Smartyの紹介 (その2)
インストール
では実際にSmartyをインストールしてみたいと思います。
http://www.smarty.php.net/download.php からダウンロードが出来ます。2007/08/19時点での最新版は2.6.18です。「Latest Stable Release」にある「Smarty 2.6.18 Source」をクリックするとSmarty-2.6.18.tar.gzというファイルがダウンロードされます。
ダウンロードしたtar.gzファイルを展開します。ここではLinuxなどUnix系のOSへインストールするものとします。
・展開先は/usr/local/lib/Smarty-2.6.18 とします。
・ダウンロードしたファイルを/tmpの下へコピーします。
・rootでインストールします。
# cd /usr/local/lib
# tar zxvf /tmp/Smarty-2.6.18.tar.gz
さて、ここまで準備が完了したら、正しくインストールできているかどうかテストしてみたいと思います。以下のPHPコードを作成しtest_smarty.phpというファイル名で保存し、Webブラウザからアクセスしてみてください。なおここではwebサーバーのDocumentRootを/var/www/htmlとし、その下にtest_smarty.phpを保存しています。
6行目のSMARTY_DIRという定数定義では、値にSmartyをインストールしたディレクトリのlibsディレクトリを記述します。最後の'/'を忘れないようにしてください。
<?php
// エラーが発生した場合にエラー表示をする設定
ini_set( 'display_errors', 1 );
// Smartyインストールディレクトリを定数定義
define( 'SMARTY_DIR', '/usr/local/lib/Smarty-2.6.18/libs/' );
// Smartyを使うための準備
require_once( SMARTY_DIR . 'Smarty.class.php' );
$smarty = new Smarty();
?>
さて、何か画面に表示されたでしょうか? 画面に何も表示されなかった人はインストールが正しく成功しています。もし、以下のようなエラーが表示された人は、Smartyのインストール先パス、SMARTY_DIRの定義値が間違っていないか確認してください。
Warning: require_once(Smarty.class.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/html/test_smarty.php on line 9
Fatal error: require_once() [function.require]: Failed opening required 'Smarty.class.php' (include_path='.:/usr/local/lib/php') in /var/www/html/test_smarty.php on line 9
続いてSmartyで使用するパスの設定です。Smartyでは以下の4種類のパスを使用します。
・テンプレートディレクトリ
・コンパイルディレクトリ
・設定ファイルディレクトリ
・キャッシュディレクトリ
これらのディレクトリを以下のような構成で作成してください。
/var/www/
├ html/ ドキュメントルート(Webサーバーで設定)
├ smarty/
│ ├ templates/ テンプレートディレクトリ
│ ├ templates_c/ コンパイルディレクトリ
│ ├ configs/ 設定ファイルディレクトリ
│ ├ cache/ キャッシュディレクトリ
なお、コンパイルディレクトリとキャッシュディレクトリにはSmartyがファイルを生成します。そのためwebサーバーのユーザーに書き込み権限を与える必要があります。もしwebサーバーのユーザーが"www"だった場合は、以下のようにしてディレクトリのオーナーとパーミッションを変更します。
# chown www /var/www/smarty/templates_c /var/www/smarty/cache
# chmod 700 /var/www/smarty/templates_c /var/www/smarty/cache
これでSmartyのインストール、設定は完了です。





ページのトップへ


GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。