我想将FastCGI与shell脚本一起使用。 我找到了几个关于在shell中编写CGI脚本的教程,但没有关于FastCGI的内容,我想这不是一回事。
有可能,怎么样?
谢谢
编辑:Ignacio:谢谢,但此链接已有14年,并表示目前不支持 。它仍然不受支持吗?
答案 0 :(得分:4)
FastCGI的重点是避免为每个传入连接生成一个新进程。根据语言的本质,shell脚本会在执行过程中产生许多进程,除非你想要大大限制自己。 (否cat
,awk
,sed
,grep
等等)。所以从一开始,如果你要使用shellscript,你也可以使用常规CGI而不是FastCGI。
如果您确定无论如何,第一个重大障碍是您必须在网络服务器提供的侦听套接字上建立accept()
个连接。据我所知,没有UNIX工具可以做到这一点。现在,您可以使用其他语言编写一个,并且可以为每个传入连接运行一次shellcript。但这正是普通的CGI所做的,我保证它比你或我写的自定义程序更好。再次,如果你想使用shellscript,请坚持使用普通的CGI。
答案 1 :(得分:2)
“如果您确定无论如何,第一个重大障碍是您必须接受()网络服务器提供的侦听套接字上的连接。据我所知,(...)”有一个C程序几乎这样做:exec_with_piped.c
(它使用管道,而不是套接字,但C代码应该很容易适应您的目的)
看看“在sh中写代理:通过管道进行交谈”
http://okmij.org/ftp/Communications.html
卡劳
答案 2 :(得分:1)
如果这是一个愚蠢的问题我会提前道歉但是是这样 可以想象使用单纯的shell脚本(sh或ksh)作为 FastCGI计划,若然,怎么办?
您不能将简单的shell脚本用作FastCGI程序。以来 shell脚本不能跨多个HTTP请求持久化,它不可能 用作FastCGI应用程序。为程序处理多个HTTP 请求在其自己的生命周期中(即不只是处理请求和死亡,如 CGI应用程序),它需要一些与Web服务器通信的方法 接收请求,并在处理后将回复发送回服务器 它。这种通信是通过实现的FCGI库完成的 以上,它目前只支持一部分编程语言, 像C,Perl,Tcl,Java ......简而言之,它不支持shell。 希望能够清理一下。 斯坦利。
答案 3 :(得分:0)
FastCGI很简单,因为它实际上只有几个扩展名的CGI。
此外:
与CGI一样,FastCGI也与语言无关。
因此,您可以将FastCGI与shell脚本或任何其他类型的脚本一起使用,就像CGI一样。
CGI教程对于学习FastCGI也很有用,除了设置Web服务器的特殊性之外。