将Yesod应用程序配置为CGI

时间:2012-10-28 08:41:31

标签: haskell cgi fastcgi yesod

鉴于一个刚刚搭建的Yesod应用程序,获取作为CGI程序的可执行文件所需的最小变更集是什么?包装程序是可以接受的。如果'cabal build'构建的默认可执行文件是CGI程序,则必须设置哪些环境变量才能充当CGI(默认情况下,它将绑定到端口并尝试在那里提供请求。)

对于FastCGI的类似答案也将不胜感激。

1 个答案:

答案 0 :(得分:7)

使用以下内容更新app/main.hs

import Prelude              (IO, (>>=))
import Yesod.Default.Config (fromArgs)
import Yesod.Default.Main   (defaultMain)
import Settings             (parseExtra)
import Application          (makeApplication)
import Network.Wai.Handler.CGI (run)

main :: IO ()
main = fromArgs parseExtra >>= makeApplication >>= run

您需要将wai-extra添加到cabal文件中的依赖项。要使用FastCGI,请将Network.Wai.Handler.CGI替换为Network.Wai.Handler.FastCGI,然后将wai-handler-fastcgi添加到依赖项列表中。