lighttpdでpwykyを動かす

  • lighttpdって?
  • pwykyって?
    • 1ファイルのみ、30KB以下のコードで動作するシンプルなWikiエンジン
    • Pythonで書かれている
  • 問題
    • pwykyの動作には.htaccessでRewriteRulesの使える必要があるが、現在lighttpd(ver 1.4.1)はこれをサポートしていない
  • 解決策
    • 設定ファイル/etc/lighttpd/lighttpd.confにて、lighttpdに標準で含まれるmod_rewriteモジュールを有効にし、pwykyが初回起動時に吐き出す.htacessと等価な設定を行う

pwykyが初回起動時に吐き出す.htacess

DirectoryIndex index.py
Options -MultiViews
RewriteEngine on
RewriteBase /pwyky
RewriteRule ^@[a-z]+/([A-Za-z0-9-]+)$ index.py [L]
RewriteRule ^([A-Za-z0-9-]+)$ index.py [L]
RewriteRule ^([A-Za-z0-9-]+)\.html$ - [L]

上記と等価なmod_rewriteの設定

url.rewrite = (
"^/pwyky/@[a-z]+/([A-Za-z0-9-]+)$" => "/pwyky/index.py",
"^/pwyky/([A-Za-z0-9-]+)$" => "/pwyky/index.py",
"^/pwyky/([A-Za-z0-9-]+)\.html$" => "-"
)

(参考)その他設定が必要な部分

# cgiを有効にする
server.modules = (
"mod_cgi",
"mod_rewrite,
)


# index.pyをインデックスファイルに設定
# 注意: index.pyをindex.htmlより前に記述しないと、pwykyが誤動作する
server.indexfiles = ("index.php", "index.py",
"index.html",
"index.htm", "default.htm")


# .pyファイルのハンドラをpythonに設定
cgi.assign = (
# ".pl" => "/usr/bin/perl",
# ".cgi" => "/usr/bin/perl",
".py" => "/usr/bin/python"
)

これで、lighttpdでpwykyが動くようになるはず。