在apache下执行CGI而不使用shebang?或者如何以与服务器无关的方式执行CGI

在apache下执行CGI而不使用shebang?或者如何以与服务器无关的方式执行CGI,apache,web,cgi,legacy,Apache,Web,Cgi,Legacy,因此,我发现自己处于一种奇怪的情况下,需要理解ApacheWeb服务器下旧的SkoolCGI(SimpleCGI)执行。是的,我知道,在实际的设置中,我们使用Apache模块或FastCGI!但无论如何 据我所知,Apache CGI脚本如下所示(本例中为perl,但可以是任何形式): 这是从这里借来的: 然后,您将使用以下apache指令确保perl脚本作为CGI执行: <Directory ...> ... Options +ExecCGI

因此,我发现自己处于一种奇怪的情况下,需要理解ApacheWeb服务器下旧的SkoolCGI(SimpleCGI)执行。是的,我知道,在实际的设置中,我们使用Apache模块或FastCGI!但无论如何

据我所知,Apache CGI脚本如下所示(本例中为perl,但可以是任何形式):

这是从这里借来的:

然后,您将使用以下apache指令确保perl脚本作为CGI执行:

<Directory ...>
    ...
    Options +ExecCGI                                             
    AddHandler cgi-script .pl
</Directory>
如果lighttpd来执行带有shebang的脚本,那么它似乎被忽略了。好的

我的问题是,在Apache中有没有这样的方法?我可以指定在服务器配置中使用哪个解释器,以便脚本不需要shebang。大概人们没有(回到CGI的时代)在每个PHP文件中添加shebang,这样应用程序就可以在Apache/CGI中运行

我无法在Apache文档中找到答案。所以也许你不能这么做

编辑:还有,谁负责发送
内容类型
标题。在CGI时代,人们真的手动输出了吗?我不记得曾经见过这样做的PHP脚本

干杯

<Directory ...>
    ...
    Options +ExecCGI                                             
    AddHandler cgi-script .pl
</Directory>
cgi.assign = (                                                                  
        ".php" => "/usr/local/bin/php",                          
        ".pl" => "/usr/bin/perl"                                                
)