サーバとしての動作

Webサーバーとしてのテスト。
index.html を作って置き、ブラウザでIPをたたくとちゃんとファイルが見える。
telnetではどう答えるのか見ておく。

# telnet 192.168.0.108 80
Trying 192.168.0.108...
Connected to 192.168.0.108.
Escape character is '^]'.
HEAD /index.html HTTP/1.1

HTTP/1.1 200 OK
Content-length: 12
Accept-ranges: bytes
Server: TwistedWeb/1.3.0rc1 AkaDAV/0.6.2
Last-modified: Sat, 22 Jan 2005 02:25:39 GMT
Date: Sat, 22 Jan 2005 02:27:09 GMT
Content-type: text/html

これは問題なさそう。

DAVサーバーとしての試験。
たしかノーチラスがDAVクライアント機能を持っていたので開いてみる、

"dav://kinneko@192.168.0.108:80/" を表示できませんでした。
そのファイルの種類を認識できません。

指定したユーザーディレクトリを作ってないからダメなのかな。

# mkdir /home/akadav/kinneko
# chown kinneko.kinneko /home/akadav/kinneko

こんどは、index.htmlの中身がウインド内に表示されて終わった。
認証とか出てこないです。
もっかいサーバー内のコメントを見直してみると、ユーザーディレクトリはサーバープロセスから書き込めないとダメみたいです。

# chmod 777 /home/akadav/kinneko

何回かやっているとノーチスが異常終了しちゃったよ。
access.log はこんな感じ。

192.168.0.108 - - [22/Jan/2005:02:45:25 +0000] "PROPFIND / HTTP/1.1" 200 12 "-" "gnome-vfs/2.8.2 neon/0.24.6"
192.168.0.108 - - [22/Jan/2005:02:45:25 +0000] "HEAD / HTTP/1.1" 200 - "-" "gnome-vfs/2.8.2 neon/0.24.6"

error.log のほうはこう。

2005/01/22 11:12 JST [-]
2005/01/22 11:17 JST [-] Log opened.
2005/01/22 11:17 JST [-] twistd 1.3.0rc1 (/usr/bin/python2.3 2.3.4) starting up
2005/01/22 11:17 JST [-] reactor class: twisted.internet.default.SelectReactor
2005/01/22 11:17 JST [-] Loading /home/akadav/akadavsvr.py...
2005/01/22 11:17 JST [-] Loaded.
2005/01/22 11:17 JST [-] akadav.davserver.Site starting on 80
2005/01/22 11:17 JST [-] Starting factory
2005/01/22 11:17 JST [-] set uid/gid 1001/1001
2005/01/22 11:24 JST [HTTPChannel,4,192.168.0.108] Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/twisted/internet/default.py", line 526, in doSelect
_logrun(selectable, _drdw, selectable, method, dict)
File "/usr/lib/python2.3/site-packages/twisted/python/log.py", line 65, in callWithLogger
callWithContext({"system": lp}, func, *args, **kw)
File "/usr/lib/python2.3/site-packages/twisted/python/log.py", line 52, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/lib/python2.3/site-packages/twisted/python/context.py", line 43, in callWithContext
return func(*args,**kw)
--- ---
File "/usr/lib/python2.3/site-packages/twisted/internet/default.py", line 535, in _doReadOrWrite
why = getattr(selectable, method)()
File "/usr/lib/python2.3/site-packages/twisted/internet/tcp.py", line 255, in doRead
return self.protocol.dataReceived(data)
File "/usr/lib/python2.3/site-packages/twisted/protocols/basic.py", line 223, in dataReceived
why = self.lineReceived(line)
File "/usr/lib/python2.3/site-packages/twisted/protocols/http.py", line 961, in lineReceived
self.headerReceived(self.__header)
File "/usr/lib/python2.3/site-packages/twisted/protocols/http.py", line 978, in headerReceived
header, data = line.split(':', 1)
exceptions.ValueError: unpack list of wrong size

2005/01/22 11:25 JST [HTTPChannel,5,192.168.0.108] Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/twisted/internet/default.py", line 526, in doSelect
_logrun(selectable, _drdw, selectable, method, dict)
File "/usr/lib/python2.3/site-packages/twisted/python/log.py", line 65, in callWithLogger
callWithContext({"system": lp}, func, *args, **kw)
File "/usr/lib/python2.3/site-packages/twisted/python/log.py", line 52, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/lib/python2.3/site-packages/twisted/python/context.py", line 43, in callWithContext
return func(*args,**kw)
--- ---
File "/usr/lib/python2.3/site-packages/twisted/internet/default.py", line 535, in _doReadOrWrite
why = getattr(selectable, method)()
File "/usr/lib/python2.3/site-packages/twisted/internet/tcp.py", line 255, in doRead
return self.protocol.dataReceived(data)
File "/usr/lib/python2.3/site-packages/twisted/protocols/basic.py", line 223, in dataReceived
why = self.lineReceived(line)
File "/usr/lib/python2.3/site-packages/twisted/protocols/http.py", line 961, in lineReceived
self.headerReceived(self.__header)
File "/usr/lib/python2.3/site-packages/twisted/protocols/http.py", line 978, in headerReceived
header, data = line.split(':', 1)
exceptions.ValueError: unpack list of wrong size

ふむ。どうしたもんかな。