Kahua2 設定ファイルについて

前回kahua-spvrでサーバを立ち上げ、ブラウザでアクセスするとこまで行いました。
このkahua-spvrに設定ファイルが関わってきます。
設定ファイルについてKahua.org Tutorialを見ても書いて無く探し出すまでちょっと苦労しました。
ちなみに説明しているのは Kahua.org hello-kahuaKahua.org Modules|kahua.configです。
まさかモジュールの方に書いてあるとは思いませんでした。

kahua.conf

ファイル名はkahua.confです。サイトバンドル内には"site/etc/kahua.conf"にあります。


まずはいきなり内容を見てみます。
サンプルはインストールしたkahuaディレクトリ以下のetc/kahua/kahua.confにあります。

$ cat /usr/local/kahua/etc/kahua/kahua.conf 
;;
;; Sample Kahua configuration file
;;
;; $Id: kahua.conf.sample,v 1.5 2005/12/22 16:29:18 shibata Exp $

(make 
  :sockbase             "unix:/usr/local/kahua/tmp/kahua"
  :working-directory    "/usr/local/kahua/var/kahua"
  :static-document-path "/usr/local/kahua/var/kahua/static"
  :static-document-url  "/kahua"
  :timeout-mins         60
  :userconf-file        "/usr/local/kahua/var/kahua/user.conf"
  )

;; Local variables:
;; mode: scheme
;; end:


主に何を設定しているかと言うとWebアプリから見た色々なディレクトリを設定しています。
例えば、working-directoryはWebアプリからみた起動時のトップディレクトリになります。
しかし、sys-system関数等で直接サーバにアクセスする場合には影響しません。


それでは意味を見ていきます。

  • sockbase サーバが使用するUnixドメインソケットを置く場所のようです。
  • working-directory 先ほど書いたとおり、Webアプリからみた起動時のトップディレクトリです。(X)HTMLで"/tmp"とするとworking-directory/tmpとなります。
  • static-document-path 静的なファイルの置き場所です。例えば、ロゴイメージやスタイルシート等を置きます。HTTPd(apache等)経由で読み取られるそうです。
  • static-document-url Webアプリからみたstatic-document-pathのURLです。上記の場合は、static-document-pathに"logo.jpg"を置くと、"/kahua/logo.jpg"と(X)HTMLに書くことになります。apache経由の場合、設定ファイルにも記述が必要とのことです。
  • timeout-mins サーバのセッションタイムアウト時間です。単位は分です。
  • userconf-file これも説明がありませんが、中身を見るとユーザIDの管理用のファイルのようです。
  • 上記以外 Kahua.org Modules|kahua.configを参照してください。


とりあえず重要なのは、working-directory、static-document-pathとstatic-document-urlです。
これを設定しないと、ファイルへのアクセスが出来ない場合が発生します。

手続き

上記設定からパスを自動生成する等の便利な手続きがあります。


まずは設定ファイルから直接値を取り出す手続きから。
例えば、"static-document-path"を取り出すには次のようにします。

(ref (kahua-config) 'static-document-path)


次はパスの自動生成系です。主に使うのは次の2つでしょう。

  • kahua-static-document-path sys-system等で直接ファイルにアクセスする場合に使用します。 "(kahua-static-document-path path)"でpathにはいくつでもパスを指定できます。例えば、"(kahua-static-document-path "css" "stylesheet.css")"とすると"/usr/local/kahua/var/kahua/static/css/stylesheet.css"が取り出せます。
  • kahua-static-document-url 上記から想像できるとおもいます。こちらは(X)HTMLからアクセスする場合に使用します。
  • 上記以外 Kahua.org Modules|kahua.configを参照してください。

起動時に設定ファイルを指定する

cオプションで設定ファイルを指定できます。

$ kahua-spvr -S site -H localhost:8080 -c site/etc/kahua.conf

とりあえずこれで設定ファイル関係は何とかなるはずです。
自分で新たにディレクトリを作成しても上記知識を組み合わせれば何とかなるはずです。


次回はディレクトリ構成とかサンプルアプリとかかな。