あまり知られていない正しいxhldの使い方

Date 2006-06-26 06:14:24 | Category: XOOPS

in englishin japanese
「xhldのせいでトップページが重い」
良く聞く言葉ですが、そのほとんどは、xhldの使い方を間違っているだけだと思います。
確かにXoopsHeadlineでは、表示の都度にXMLパースするなんておかしな作りになっているため、取得動作の有無にかかわらず「重い」のですが、xhldはすでに処理済みのデータを取り出すだけなので、基本的には「軽い」部類のモジュールです。

もちろん、サイトアクセスと同時に取得動作があれば、当然重く感じるでしょう。xhldの作りがどうであれ、キャッシュの切れたサイト数ものRSS/Atomを取得するのですから、その分の時間がかかるのは当たり前です。

でも、サイトアクセスが取得動作のトリガーとなる、ということ自体が本来おかしいのです。

実は、xhldにはcacheをアップデートする機能が備わっています。お使いのホスティングサービスが、cronを許可していれば、このようなcrontabを登録してください。(もちろん、ファイルのパスはご自身の環境に合わせて修正してください)

5 * * * * cd /home/yourhome/public_html/modules/xhld0/include;/home/yourhome/public_html/modules/xhld0/include/update_cache.sh >/dev/null 2>&1

この場合、1時間に1回、RSS/Atomを取得に行きます。ここで大事なのは、各フィードの取得時間が1時間を超えるように設定することです。取得時間が長い分にはいくら長くても構いません。update_cache.sh が実行された時点で、強制的に新規にキャッシュを生成します。

この設定がうまくいかない場合は、まずはシェル上で実行してみてください。その時に出たーエラーで対応が別れるでしょう。ありがちなパターンを列挙しておきます。

- パーミッションに実行権限がない ... この場合、700がお勧めです
- /usr/local/bin/php がない ... CLI版またはCGI版PHPのパスを調べて、update_cache.shの1行目を書き換えてください
- Can't use fastestcache というエラーが出る ... fastestcache hackとのバッティングですね。最新版xhldには、それに対応したupdate_cache.shが含まれています
- cronが許可されていない ... 他のサイトからcronで読みに行く、なんて手もあります

RSS/Atom表示機能は確かに便利ですが、そのためにサイト閲覧者にストレスをかけるような真似は避けたいものです。ぜひ一度、cronによる取得をお試しください。

(……って、ドキュメントに書き忘れている私が一番悪いのですが




You can read more news at PEAK XOOPS.
http://xoops.peak.ne.jp

The URL for this story is:
http://xoops.peak.ne.jp/md/news/index.php?page=article&storyid=130