2012-09-10 26 views
1

到目前为止,我已经测试了hunchentoot-cgi(CL),mighttpd2(Haskell),ocsigen(OCaml),yaws(erlang)来承载一个老的python CGI应用程序。除了hunchentoot-cgi之外,所有工作都很好。我喜欢Lisp风格的编程,所以我真的想在Lisp风格的Web服务器上托管应用程序。如何承载CGI应用程序?

二郎,我只需要如下的配置吧:

>cat ~/yaws.conf 
... 
<server 192.168.1.2> 
    port = 8000 
    listen = 0.0.0.0 
    docroot = /media/G/www/qachina/ 
    access_log = false 
    appmods = <cgi-bin, yaws_appmod_cgi> 
</server> 
... 

然后蟒蛇CGI程序就可以。

Noir/Ring怎么样?

回答

2

因为你似乎认为环(和因此Noir)不是一个Web服务器。它是创建Web应用程序的框架。它不提供对外部应用程序的访问;相反,它允许您在Clojure中编写自己的动态Web应用程序。然后,可以将这些应用程序部署到标准Java Servlet容器或使用嵌入式Jetty Web服务器手动运行。

当然可以创建这样的web应用程序,它将获取外部CGI程序的输出,处理它并将结果提供给客户端,但是必须自己编写所有CGI处理(例如,解析HTTP标头并构建标准的环响应图)。据我所知,Ring堆栈没有CGI包装。