記事数の多いサイトの構築という事態に備えて、再構築のチューニングについて事前に触れておこうと思い対応しました。 このブログも備忘録の記事がそれなりにあって再構築に時間がかかるので何とかしたいというのもあるのですが...。
まずはアーカイブ系のテンプレートに公開キューを設定して再構築時の速度向上を狙います。
公開キューを設定したテンプレートはcrontabで指定した時間に再構築が実行されるとのこと、
Crontabの設定。下記の場合だと毎日時間の変わり目にcrontabを実行します。
0:00、1:00、2:00、3:00といった具合です。
# crontab -e 00 * * * * cd /var/www/mt/; ./tools/run-periodic-tasks
ログを確認。cronを実行できているようですね
#vi /var/log/cron Apr 10 20:00:01 gomwoserver crond[31066]: (root) CMD (cd /var/www/mt/; ./tools/run-periodic-tasks) Apr 10 20:01:01 gomwoserver crond[31076]: (root) CMD (run-parts /etc/cron.hourly)
サーバーからメールが送られきました。内容を確認すると...。
bin/sh: ./tools/run-periodic-tasks: Permission denied
はいはい、権限ね...。run-periodic-tasksのパーミッションを755に変更。
これで問題化解決だろうと思ったらまたメールが送られてきました。内容を確認してみると今度は大量のエラーメッセージが...。
Use of uninitialized value in concatenation (.) or string at /var/www/mt/plugins/PageBute.pl line 329.
このエラーは変数を初期化せず、また値を格納することなく使うと発生するようです。
Use of uninitialized value in concatenation (.) or string atというエラー
PageBute.plのソースを眺めてみて、エラー発生条件にあてはまりそうな変数$urlを初期化しようといじったら、今度はプラグインを認識しなくなってしまったのでソースをいじくるのはやめました。Perlはわからないので、またの機会に対応したいと思います。
エラーメッセいーじが送られてくるものの、ログを確認してみると指定した時間に動作しているようですし、再構築もできているのでとりあえずうまくいっているようです。よくよく考えたらブログは夜に更新するので、「毎日0:00に再構築かければいいんじゃね?」という結論に達したので、結局こんなかんじて設定しました。
# crontab -e 00 0 * * * cd /var/www/mt/; ./tools/run-periodic-tasks
これならエラーメッセージを受け取るのも1日1回で済みますしね...。