
Smartyとphpで動的にページコンテンツを生成するサイトをつくっています。
例えば、
index.php?m=front → front.phpにアクセスしてfront.tplを返す
index.php?m=page2 → page2.phpにアクセスしてpage2.tplを返す
index.php?m=page3 → page3.phpにアクセスしてpage3.tplを返す
…
という動作をさせています。
ただ設置しているレンタルサーバーが最近重く動作が鈍重になってしまい、phpファイルからただのhtmlファイルに換えたいと思っています。
上の例で言えば、
index.php?m=front → front.html
としたいのです。
はじめからfront.htmlを用意し、file("front.tpl")でテンプレートを読み込んでファイルを書き換えようと試しましたが、データベースの情報を含むページにそのデータの内容が反映されないところで行き詰っています。
何かしらの方法で、
php → Smarty → html生成
ということができないでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
casheを作成しているならば、htmlと同等だと思うのですが・・・
cgiとして動かせば多少は、重くなるかもしれませんが、
よっぽど、アクセスが多くないのなら、それ程気にならないと思いますが?
普通のhtmlファイルが遅いのならば、サーバの問題でしょうし、
極端に違うならば別の問題かもしれないので、
サーバ会社へ問い合わせるのがよろしいのでは?
>f_motionさん
以前はhtmlファイルで今ほど重くはなかったので、phpの処理の影響と思っていたのですが。
とりあえずサーバー会社には問い合わせてみます。
また、キャッシュの使い方の問題ということはありえますか?
物の本によれば、「テンプレート更新チェックのためのわずかな処理によってパフォーマンスが阻害される」とありましたが、例えば
$smarty->cache_lifetime = 3600;
$compile_check = false;
にしておけば、一時間ごとにキャッシュが破棄され、アクセスがあれば新しいキャッシュが自動で更新される、ことになりますでしょうか?
No.3
- 回答日時:
やはりCGIプログラムとして呼び出されている以上、それなりのオーバーヘッドは避けられません。
Apacheのモジュールとして動作させるサーバーに乗り換えるのがもっとも確実な方法だと思います。No.1
- 回答日時:
キャッシュを使えば、速度は速くなりますが、
DBが更新されたら、キャッシュも更新する
などの処理も必要になります。
どれ位アクセスがあるか分かりませんが、
サーバなどに問題がありそうですが・・・
参考URL:http://sunset.freespace.jp/Smarty/SmartyManual_2 …
この回答への補足
>f_motionさん
回答いただいて有難うございます。
f_motionさんの仰るようにキャッシュを使用しています。DB更新毎にキャッシュを更新するという設定にもしております。
ただそれでも遅いときは、画面表示に数秒かかるときがあって、その状況を改善したいのです。
確かにサーバーの問題かもしれないですね。
サーバーは、e-storeのサイトサーブというプランを使っているのですが、phpの実行はcgiプログラムとして動作するとなっており、
e-storeのcgiファイルの設置に関しては、
【設置ディレクトリ 推奨は、ログインディレクトリ(docs/)の1つ上にある cgi-bin ディレクトリですが、docs ディレクトリ内 でも動作します。】 ← public_htmlです。
呼出アドレスについては
【 ・cgi-bin ディレクトリに設置した場合は、「http://www.お客様ドメイン名/cgi-bin/ファイル名」】
となっていますが、私はcgi-binディレクトリは使用していません。
自分の思い当たるところでは、上の点かという気がしています。(サーバーの知識が乏しいので勘ですが・・・)
やはりphp → Smarty → html生成はできないでしょうか?
それかサーバーに設置を工夫することで改善できるでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HPを開くとダウンロードページ...
-
PHP プルダウンからの選択 ペ...
-
拡張子PHP3のスクリプトを...
-
phpのheader("Location:#pos")...
-
*.php、*.php3、*.phtmlの違い
-
CFileDialogの最初のディレクト...
-
シェルスクリプトをPHPで動かそ...
-
php4とphp5での数値の取り扱い...
-
require_once()でファイルが読...
-
PHPのif文でその処理を途中で抜...
-
「クラス関数」「メンバ関数」...
-
ZendFrameworlkでZend_Session...
-
ImageCreate関数が undefined f...
-
Warning: Invalid argument sup...
-
phpのextension_dirを複数指定...
-
PHPからlhaコマンドを使いたい
-
require_onceが動いていない
-
再度、xamppにおけるjpgraphの...
-
HTML文をなんとか隠蔽したいの...
-
phpの中でphpを書けないか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HPを開くとダウンロードページ...
-
OpenX2.8.5をさくら専用サーバ...
-
ヒアドキュメントの中で別ファ...
-
htmlファイルでPHPとSSIを有効...
-
index.phpって何ですか? 具体...
-
phpで大量のhtmlを任意の順番で...
-
file_get_contents()の動きが読...
-
CSSが反映されない場合がある
-
file_get_contentsでcss読み込み
-
社内イントラネットのHPにアク...
-
Smartyを使ってhtmlファイルを...
-
a.htmlへのアクセスをa.phpで処...
-
PHPからHTMLファイルを書き出し
-
拡張子をhtmlにすることのメリ...
-
jsファイルがうまく読み込めない
-
文系でHTMLしかわからない者です。
-
共通部品の外部ファイル化
-
.htaccessによりリダイレクトさ...
-
phpでjarファイルを実行したい
-
HTMのファイルをPHPに変換す...
おすすめ情報