我在 Windows 上运行 Apache Web 服务器,以便处理一些 Perl CGI 脚本。在生产中,这些脚本在 linux 机器上运行,并且在源代码存储库中它们都有 shebangs,例如:#!/usr/bin/perl
,但在我的 windows 机器上,shebangs 会是#!c:\perl\bin\perl.exe
,所以我与源代码库有冲突。
输入 Apache ScriptInterpreterSource指令。
我一直在努力使它工作,基于我可以谷歌。但到目前为止还没有运气。我有:
将这些内容添加到相应的指令 AllowOverride None
Options Indexes FollowSymLinks ExecCGI Order allow,deny Allow from all ScriptInterpreterSource Registry-Strict补充:AddHandler cgi-script .cgi
编辑了我的注册表并添加了一个新字符串
HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command=C:\Perl\bin\perl.exe
现在,我知道 CGI 只要有正确的 shebang 就可以在这台服务器上工作。
但是当我尝试在没有 shebang 的情况下访问 CGI 时,apache 日志会吐出:
找不到类型为“.cgi”的文件的 Exec CGI 动词
任何想法,见解,甚至是疯狂的猜测都会受到赞赏。
谢谢。