この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
mla botクローンを作っていて思い出したので、「irc.freenode.netで使われているNick認証がやってきません。」とかいうことになっていたのを1ヶ月ぐらい前に直していたのを、特に問題がなさそうなのでコミットした。
そういうときはstrptimeかと思ったら、1.8にはTime.strptimeはなかった。(DateTime.strptimeとDate.strptimeはある。)
[hyperestraier-users-ja] Patched for Node Sever & Crawlerの6を見て、wikiやblogの編集や差分などへのリンクは「rel="nofollow"」を付けると良いのではないかと思った。
よくわからないけど、はてなブックマーク - ぼくはまちちゃん!(Hatena) - はてな足あとちょうのように足あと機能のようにも使える仕様らしい。
そういう仕様を意図しているかどうかは謎。
と思っていたらはてなスター日記 - はてなアイデアにお寄せいただいたアイデアについての最後に意図していないっぽいことが書いてあった。
「(*THEN)」とかをみて「(?〜)」、「(*〜)」と来て他に(括弧の直後に使えないメタ文字で)残っているのは何だろうと思ってしまった。
すぐに思いつくのは量指定子の「+」を使って「(+〜)」。「({〜})」もあるかなあ。
[debian-users:49056]とかLimitExcept OPTIONSとか。
mod_userdirのソースまで見て代わってるのはデフォルトが"public_html"からNULLになっただけっぽいというところまでたどり着いていたのに、コンテキスト: サーバ設定ファイル, バーチャルホストというのを、サーバグローバルの設定を引き継いだ上でバーチャルホストの設定が追加されると誤解していたのが敗因。
UserDirをまったく設定していないバーチャルホストではサーバ全体の設定を引き継ぐけど、1つでもUserDirを書いているとUserDir public_htmlを設定していないデフォルトの状態に戻ってしまっていたということだった。
ソースをみて気づいたけど、enabledとenableはまったく同じ(disabledとdisableも)で、(enabledとdisabledだけ使っていても)エラーメッセージではenableと出てくるようになっていた。
結論からいうとAuthzSVNAccessFileとLimitExceptは混ぜてはいけない。認可はAuthzSVNAccessFileだけに任せる方が良い。
どうはまったかというと、AuthzSVNAccessFileで「* =」と「kazu = rw」という感じで認証済みのユーザだけ読み書きできて、認証していないと読むことも出来ないという設定にしていた。その上でapache側で「<LimitExcept OPTIONS>require valid-user</LimitExcept>」(実際には改行あり)という設定をしていたら、svn ciの最初のOPTIONSの応答が「403 Forbidden」になってしまって那覇んだという話。
どういうことかというと、最初は認証が必要かどうかわからないから、認証用の情報無しでOPTIONSのリクエストをするが、AuthzSVNAccessFileで「* =」になっているので認可されない。apacheはLimitExceptでrequire valid-userの対象外になっているので認証を要求しない。結果、認証できないので「401 Unauthorized」にならずに「403 Forbidden」になっていた、ということだと思う。「Satisfy Any」とかあるから厳密には違うところがあるかもしれないけど、大まかにはこういうことだったのではないかと思う。
最終的にはこんな感じの設定にした。
<Location "/svn">:
DAV svn
SVNParentPath /srv/svn
SVNListParentPath on
SVNIndexXSLT "/svnindex.xsl"
AuthType Digest
AuthName "Subversion Repository"
AuthUserFile "/etc/apache2/auth/dav_svn.digest"
require valid-user
AuthzSVNAccessFile /etc/apache2/auth/dav_svn.authz
Satisfy Any
</Location>
✑ dav_svn.authzはこんな感じ。
[groups]
all = foo, bar, hoge, fuga
webmasters = foo, bar
[hoge-web:/]
* =
@webmasters = rw
[test:/]
* =
@all = rw
最後の方の「うっかりテスト環境のファイルをそのまま本番に持っていくとおかしな事に」という部分について。
ここでは広告バナーのIFRAME部分を「if /xrea/ =~ ENV['SERVER_NAME']」で条件分岐して埋め込むようにしています。こういう設定ファイル以外からの情報が使えるのならその情報を使って分岐した方がうっかりミスが防げて良さそうに思いました。
✑ くろはた [とりあえずクリックしてみたら、いっぱいスターがついちゃいました。大丈夫なんでしょうか。]