Movable Type4.2からのキャッシュとサーバーサイドインクルード機能を利用していて失敗したときのことを記します
キャッシュとSSI(サーバーサイドインクルード)機能の説明はここでは省略します。以下を参照してみてください。
- テンプレートモジュールのキャッシュ
- http://bizcaz.com/archives/2008/08/03-000022.php Movable Type 備忘録 - Movable Type 4.2 のキャッシュとサーバサイドインクルードについて
この前サーヴァ間移動をおこなったときのことなのですが、ページを表示するとWarningがでているんですねえ。
でそのWarningの内容を見ると、パスのところに移動もとのほうのアカウントが。インクルードするファイルを読み込めないために警告されているようでした。
サイトパスとかブログの設定で書き換えた(移動のときサーヴァのアカウントも変えたので)ハズなんだけどおかしいなあと思っていたら、SSIのところだったというオチでした。*ヴァージョンは4.27にてということにしておきます。
キャッシュ設定がPHPでおこなわれたとすると、そのモジュールの出力ページは保存用のディレクトリに保存されて、読み込む側のページにおいて以下のように置き換わるようです。
<?php include("/path/to/site/includes_c/includemodule.php") ?>
これが静的ページに残ってるということですね。ちなみに保存用ディレクトリincludes_cは環境変数(IncludesDir)により変更可能です。新しいほうのサーヴァのパスになるためにはファイルが更新されないといけないので、結局のところ再構築をおこなう必要があります。
つまるところ、サーヴァ移動をおこなったときの全再構築を執り行うのを怠っていたワタくシのミスでした。
なんというか、テンプレート編集画面を見てもモジュールインクルードの箇所はSSIが展開されて表示されているのではないのでうっかりしてました。サーヴァ移動後の注意点としてはそんなところです。