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