tDiaryをLighttpd上で動かすための設定をした際のメモ
構成
準備
Ruby 2.0を使うので,/etc/make.confに次の設定を追加しておく.
RUBY_DEFAULT_VER=2.0
RUBY_VER=2.0
各ソフトウェアのインストールには,Ports Collectionを用いる.portsnap(8)を用いて,Ports Collectionを入手し最新版にしておく1.
# portsnap fetch
# portsnap extract
# portsnap update
インストール
Ports collectionのlighttpdとtDiaryをインストールする2.以下,ユーザ名はfooとする.
# cd /usr/ports/www/lighttpd
# make install clean
# cd /usr/ports/japanese/tdiary
# make install clean
# /usr/local/bin/ja-tdiary-inst.rb --user=foo
設定
“Docs Configuration File Options - Lighttpd“などを参考にして,/usr/local/etc/lighttpd/ディレクトリ以下の設定ファイルを修正3する.
lighttpd.conf
- サーバ名4(デフォルトだとhostname)
server.name = "www.example.org" - ディレクトリ名でアクセスされた際に用いるファイル5
index-file.names += ( "index.html", "index.rb", "amazon-auth-proxy.cgi" ) - パス名によるアクセス制限
$HTTP["url"] =~ "/\.|.*\.rhtml|tdiary\.|trackback|amazon-auth-proxy\.yaml" { url.access-deny = ( "" ) } - これはコメント・アウト6
#$SERVER["socket"] == "0.0.0.0:80" { } - mod_authの設定ファイルをインクルードする7
include "conf.d/auth.conf" - User-Agent, IPアドレスによるアクセス拒否のための設定ファイル8をインクルードする
include "deny_ua.conf" include "deny_ip.conf"
modules.conf
- mod_authを有効にする
server.modules = ( ... "mod_auth", ... ) - mod_userdir, mod_cgiの設定ファイルをインクルードする9
include "conf.d/userdir.conf" include "conf.d/cgi.conf"
conf.d/auth.conf
- tDiaryのユーザ認証にはDigest認証を使う
auth.backend = "htdigest" - Digest認証のためのパスワード・ファイル名
auth.backend.htdigest.userfile = "/home/foo/diary/.htdigest" - tDiaryの日記更新(および,設定変更)にはユーザ認証が必要
auth.require = ( "/~foo/diary/update.rb" => ( "method" => "digest", "realm" => "tDiary", "require" => "valid-user" ), ) - パスワード・ファイルの作成は,"Docs Module mod_auth - Lighttpd“を参照10する
conf.d/cgi.conf
- CGIプログラムとして扱う拡張子(と,それを実行するプログラム)
cgi.assign = ( ".rb" => "/usr/local/bin/ruby", ".cgi" => "/usr/local/bin/ruby" )
conf.d/mime.conf
- 拡張子.rdfに対するMIME Media Typeを追加する
mimetype.assign = ( ... ".rdf" => "application/xml", ... )
conf.d/userdir.conf
- ユーザのホーム・ディレクトリのある場所11
userdir.basepath = "/usr/home/" - ユーザ・ディレクトリの使用を許すユーザ
userdir.include-user = ( "foo" )
deny_ua.conf
- User-Agentによるアクセス拒否のための設定
$HTTP["useragent"] =~ "360[Ss]pider" { url.access-deny = ( "" ) } $HTTP["useragent"] =~ "[Bb]aidu" { url.access-deny = ( "" ) } ...
deny_ip.conf
- IPアドレスによるアクセス拒否のための設定
$HTTP["remoteip"] == "192.0.2.0/24" { url.access-deny = ( "" ) } ...
既にPorts Collectionがインストールされていれば,2行目の作業は不要. ↩︎
tDiaryはrubyに依存しているので,tDiaryをインストールすれば自動的にrubyがインストールされる. ↩︎
または,エントリを追加する. ↩︎
当然,これは例示用. ↩︎
ApacheのDirectoryIndexに相当. ↩︎
modules.confに該当項目がないため,ここで読み込む. ↩︎
これらは,独自に作成する. ↩︎
各設定ファイル内でモジュールを有効にしている. ↩︎
Apacheのhtdigestコマンドで作成したものをそのまま使用できる. ↩︎
これをセットしないと,/etc/passwdのhome_dirフィールドが用いられる. ↩︎