关于lighttpd的haskell fastCGI,需要配置帮助

时间:2009-12-30 17:50:06

标签: haskell webserver lighttpd

我正在尝试设置一个lighttpd服务器,它将运行用haskell编写的fastCGI程序。 到目前为止,我得到了这个haskell程序:

import Network.CGI
import Text.XHtml

page :: Html 
page = body << h1 << "Hello World!"

cgiMain :: CGI CGIResult
cgiMain = output $ renderHtml page

main :: IO ()
main = runCGI $ handleErrors cgiMain

和这个lighttpd配置:

server.document-root = "/home/userwww/www/" 

server.port = 80

server.username = "userwww" 
server.groupname = "userwww" 

mimetype.assign = (
  ".html" => "text/html", 
  ".txt" => "text/plain",
  ".jpg" => "image/jpeg",
  ".png" => "image/png" 
)

static-file.exclude-extensions = (".php", ".rb", "~", ".inc" )
index-file.names = ( "index.html" )
server.event-handler = "poll"
server.modules              = (
            "mod_access",
            "mod_accesslog",
            "mod_fastcgi",
            "mod_rewrite",
            "mod_cgi",
            "mod_auth"
)


fastcgi.server = ("/test" =>
                   ("test" =>
                     ("socket" => "/tmp/test.sock",
                      "bin-path" => "/home/userwww/www/test.fcgi",
                      "check-local" => "disable"
                     )
                   )
                 )

Lighttpd很好地启动并在我打开index.html时工作,但是当我尝试打开http://127.0.0.1/test时,它只是开始加载网页并继续无限期地加载它而不显示任何内容。

我怀疑我的lighttpd.conf文件错误或不完整但在查看文档后我找不到它的错误。

2 个答案:

答案 0 :(得分:2)

我认为你想使用Network.FastCGI而不是Network.CGI。您还必须确保将Haskell程序配置为在套接字的正确位置查找或者在正确的端口上进行侦听。

答案 1 :(得分:1)

你的Haskell程序看起来像CGI脚本,而不是fastCGI脚本。

尝试将其作为CGI脚本运行(或者甚至尝试从命令行运行它 - 它应该在终止之前输出一些标题然后输出“Hello world”页面。)