まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary

2007/02/24(土)Windowsで擬似データベース運用のアップグレード不具合

障害対象

以下の環境においてデータベース情報に問題が発生し、コメント書き込み時にエラーや不具合が発生することが確認されました。

対象サーバWindows系
対象DB擬似データベース(pesudo DB)
その他条件1.04以前から1.10以降にアップグレードした場合
症状コメント書き込み時にエラーが出る
原因改行コードに関する内部仕様の変更

対象となるかたは、こちらから修正済のDB_pseudo.pmを落として、lib/Satsuki/DB_pseudo.pm に上書きしてください。ご迷惑をおかけし申しわけありませんでした。

なおこの不具合は、Windows環境以外では発生しません。*1

*1 : Mac OSも……最近はFreeBSD系ベースなので大丈夫だと思いますが

公式Ping Serverの不具合

ある長さ以上のURLから更新通知を送ると、途中で省略されてしまう("..."となる)不具合がありました。現在は修正されています。大変ご迷惑をおかけしました。

追記 2007/02/25

修正ミスがあったので、再修正しました。

その他

adiaryでは不具合に関する情報を広く受け付けています。リリース時、一応確認はしていますが、すべての運用環境の組み合わせをテストすることは不可能で、どうしても単純な見落としによる不具合が発生してしまうことがあります。

おかしいなぁーと思ったら気軽にお問い合わせください。

2007/02/05(月)trust mode(トラストモード)について

adiaryのタグ利用制限の解除

標準状態の adiary では、マルチユーザー環境で信頼出来ないユーザーにアカウントを付与してもセキュリティー上の問題が発生しないように設定されています*1。タグの利用制限が他のツールに比べて厳しいのもこの影響です。

しかし、個人で adiary を利用する場合、この制限は非常に煩雑なものです(詳細デザインなどでもタグの利用制限がかかります)。これを撤廃するモードが adiary には存在します。そのモードを trust mode(トラストモード)と言います。

adiary.conf.cgi の95行目付近(loadpm("Diary")より後)にある次の設定を有効にしてください。

<$v.trust_mode = 1>

*1 : つまりTypePadのようにレンタルサービスに使用しても十分耐えうるセキュリティ設計にしてある

管理者のみトラストモードにする設定 2007/05/07

adiary 1.31以降では、管理者権限を持つユーザーのみタグの利用制限を外すことができます。adiary.conf.cgi に次のように設定します。

#<$v.trust_mode = 1>     ←この行は有効にしない
<$v.root_trust_mode = 1>

2007/01/11(木)時刻記法

時刻記法(Version1.03以降対応)

特定の書式で、書き込み時刻(初公開日時)を表示する方法です。*1

[time:%Y/%m/%d]
[time:%H:%M:%S]

などと書くと

[time:%Y/%m/%d]

[time:%H:%M:%S]

と表示されます。

%Y %y %m %d %I %H %M %S %w %s %e %j %k %l %a %p

が使用出来ますが、詳細はstrftimeを参照してください。

またadiary拡張として次のものが使用できます。

%n月表記(桁可変)
%i12時間表記( 0-11)
%L12時間表記(00-11)(2桁)
%J0~24時以降、日付変更時間まで深夜表記
%K0~24時以降、日付変更時間まで深夜表記(2桁)

*1 : この記法は内部的にBase.pm の tm_printf を呼び出しています

2007/01/04(木)adiary + Apache 1.3

adiary + Apache 1.3において、PATH_INFOの解析に失敗することがある不具合を発見しました。mod_rewrite + single ユーザーモードで発生しやすいようです。症状としては、カレンダーで前月に辿れなかったりします。次期バージョンで対応しますが、応急処置的には次のような修正を行ってください。

lib/Satsuki/Base.pm の 1180行目付近に次の一行を追加してください。

$ENV{PATH_INFO} =~ s|//+|/|g;		←追加する行
my $str   =  substr($ENV{PATH_INFO}, 1);
$str      =~ tr/+/ /;
my @pinfo = split('/', $str);

Base.pm:修正したファイルを置いておきます。(Base.pm 52KB)*1

特に問題が発生していない方はこの修正は不要です。

*1 : 修正方法は違いますが問題ありません

追記 2007/01/05

そもそも特定状況下にてパス自動解析の動作が怪しい様子だったのですが、手元でApache1.3環境を用意して色々とテストしてみたものの、不具合が再現できませんでした。*2

*2 : スクリプトからのリンクに'//'が表れてしまうという不具合。発生条件が分かるかたはお知らせください。