将Yesod应用程序配置为CGI

Edw*_*ang 6 haskell cgi fastcgi yesod

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

对于FastCGI的类似答案也将受到赞赏.

Mic*_*man 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
Run Code Online (Sandbox Code Playgroud)

您需要添加wai-extra到cabal文件中的依赖项.要使用FastCGI的代替,替换Network.Wai.Handler.CGINetwork.Wai.Handler.FastCGI,并添加wai-handler-fastcgi到依赖关系列表,而不是.