Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 如何托管CGI应用程序?_Clojure_Ring_Noir - Fatal编程技术网

Clojure 如何托管CGI应用程序?

Clojure 如何托管CGI应用程序?,clojure,ring,noir,Clojure,Ring,Noir,到目前为止,我已经测试了hunchentoot cgi(CL)、mighttpd2(Haskell)、ocsigen(OCaml)、yaws(erlang)来承载一个旧的python cgi应用程序。除了hunchentoot cgi,所有的工作都很棒。我喜欢Lisp风格的编程,所以我真的希望在Lisp风格的web服务器中托管应用程序 在erlang中,我只需要如下配置它: >cat ~/yaws.conf ... <server 192.168.1.2> port =

到目前为止,我已经测试了hunchentoot cgi(CL)、mighttpd2(Haskell)、ocsigen(OCaml)、yaws(erlang)来承载一个旧的python cgi应用程序。除了hunchentoot cgi,所有的工作都很棒。我喜欢Lisp风格的编程,所以我真的希望在Lisp风格的web服务器中托管应用程序

在erlang中,我只需要如下配置它:

>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>
...
>cat~/yaws.conf
...
端口=8000
听=0.0.0.0
docroot=/media/G/www/qachina/
访问日志=false
appmods=
...
然后python CGI应用程序就可以工作了

Noir/Ring怎么样?

Ring(因此,Noir)并不是您想象中的web服务器。它是一个用于创建web应用程序的框架。它不提供对外部应用程序的访问;相反,它允许您在Clojure中编写自己的动态web应用程序。然后,可以将这些应用程序部署到标准Javaservlet容器中,或者使用嵌入式JettyWeb服务器手动运行

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