Movabletypeには、データベースに直接手を入れるHackから、小っちゃいプラグイン(でも開発する人はすごいし、その労力は推して知るべし)・・・を1個入れるだけで便利になるよ!っていうものまで様々なものがあります。
そういったものをちょっと出してみる事にします。
サイトが文字化けしちゃう
インストールはちゃんと出来た(感じ)なのに、なぜかサイトが文字化けしちゃう。
ブラウザでエンコード指定したら見れる。
リロードすると再度文字化け。。。
そんな時は魔法の化け化けを使います。
####### PHP config Magic Word
php_value default_charset UTF-8
php_value mbstring.language neutral
php_value mbstring.internal_encoding UTF-8
php_value mbstring.encoding_translation Off
php_flag register_globals Off
####### PHP config Magic Word End
上記を記述した.htaccess ファイルを作って置いてあげます。
不要な設定は、文章の頭に「#」をつけてコメントアウトすると良いです。
サーバーの設定ではたまに強制的にShift-JISにしちゃうものもあるので、こうやってエンコーディング指定をし直して上げると解決出来る場合があります。
cacheディレクトリ
MTルート/tmpl の下に cacheディレクトリを作成して上げると、管理画面等でキャッシュが働いて快適になる場合があります。
しかし、このキャッシュディレクトリには、プラグインにより書き換えられた管理画面も保持されます。
なので、管理上で使うプラグインを外したのに、なぜか有効なままの場合はこのキャッシュを削除してあげると良いです。
ちょこっと諸刃の剣。な小っちゃいカスタマイズ。
管理画面に入れない
なんだか判んないけど管理画面に入れなくなっちゃった時。
URLに「movabletype/news/newsbox.html」が含まれている時。
NewsboxURL disable
■Movable Type 環境変数リファレンス [Six Apart]
再構築でエラー頻発
mt-config.cgi ファイルで、段階的に再構築される数を変更してみましょう。
以下を追記。
EntriesPerRebuild 10
以下でもちょっと述べてたりしてます。
■再構築の数を調整する
あとは、複数のアーカイブを持ってる場合は、一部をダイナミック・パブリッシング化するとか、エントリーの構築容量そのものを減らす手段です。
■ダイナミック・パブリッシングで改行処理プラグインを有効に使えるよう頑張ってみる-でもダメな件
ダイナミック・パブリッシングのキャッシュと条件付リクエスト
これはMTのダイナミック・パブリッシングを使ってる場合。
「ブログのルート」(トップレベル)に「cache」ディレクトリを作成して、パーミッションで書き込み権限を与えます。
次に、MTのテンプレートの「mtview.php」を開いて以下の一文を書き込みます。
$mt->caching =true;
これで、ダイナミック生成のページではキャッシュが作成されて、スタティックなページとほぼ変らない表示速度になります。
もちろん、キャッシュが生成されてる場合。
これと併せて「キャッシュがある時」と「キャッシュがない場合」で表示を分けちゃう方法も記述しておきます。
以下の文を追記。$mt->conditional =true;
併せると「Dynamic Site Bootstrapper」はこんな感じになります。
<?php
include('<$MTCGIServerPath$>/php/mt.php');
$mt = new MT(<$MTBlogID$>, '<$MTConfigFile$>');
$mt->caching =true;
$mt->conditional = true;
$mt->view();
?>
■Movable Type 3.3 マニュアル - ダイナミック・パブリッシング [Six Apart]
あとがき
XREAでは、鯖への負荷が可視化されてるので、その辺りを減らしたい事もあってキャッシュ改善策。
確かにページは早く表示されるようになったので良かったです。
こういった細かいことも、ひとつひとつもっと踏み込んで記しておきたいけど、それはまた必要な時にやるって感じで。。。
2007/04/01 23:54:04 追記:
ダイナミック・パブリッシング下でページ分割を行ってる際は、キャッシュ機能を有効化すると、ページ分割が無効化されてしまう事が判ったので、その点を追記しました。
コメント欄でoscarさんが不思議がっていたのはこの点だったのかーっ!!と今になって判りました。
ごめんなさいほんと。判ってない人で。。。(。。|||)
アドバイスをくれた「WingMemo」のTAEKOさん、本当にありがとうございました。
■WingMemo: ダイナミック・パブリッシングで頁分割(1)
こんばんは!
キャッシュと条件付リクエストなんですが、キャッシュはサーバーレベルでのキャッシング、条件付きリクエストはクライアントレベルでのキャッシュという事で、本来どちらかを選択するものだと思うのですが。
試したことは無いですが、併用できるんでしょうか?
その場合どちらが優先されるんだろう?
>>oscar さん
こんばんはー。キャッシュのリクエストにそんな2通り在るって事、考えもしなかったです(。。|||)
確かに2つの選択がありますよね、そういえば。
今回、ここに書いてるだけの事を条件付リクエストとして施した場合、「サーバーレベルでのキャッシング」が機能してます。
ローカルサーバーでの動作も同じでした。
クライアント側にキャッシュ指定を行う場合は、metaタグの
「<meta http-equiv=”cache-control” content=”no-cache” />」ですよね。
どちらかの設定を行ってる場合、「行ってる設定」が優先されるんじゃないでしょうか?
確かではありませんので、私個人の意見ですけど。。。
うーんどうでしょう?(・ω・)ゞ
>クライアント側にキャッシュ指定を行う場合は、metaタグの「<meta http-equiv=”cache-control” content=”no-cache” />」ですよね。
HTTP/1.1の仕組みで、「条件つき GET」ってのがあるらしいです。以下小粋空間さんのエントリーから引用:
「304 Not Modified」はページが更新されていない時に返却するレスポンスコードです:引用ここまで
http://www.koikikukan.com/archives/2007/01/15-005050.php
これを有効にするための仕組みみたいですよ。
PHPは通常コーディング側で、仕組みを追加しなくてはならないらしいですが、MTのダイナミック・パブリッシングは自動らしいです。
>>oscar さん
とてもためになる情報ありがとうございます_(..)_
・・・すごいですねー。ほんとためになる。。。
MTもそういうこと自動でやっちゃうということでMTもすごいですね!