我已经正确配置了cgi脚本的wamp,但它没有运行以下代码并在执行时出现以下服务器错误。
Bad file descriptor: don't know how to spawn child process:
C:/wamp/www/New folder/hello.cgi, referer: http://localhost/New%20folder/
我的主动perl安装在C:/ wamp / www / perl
上
这是代码:
#!C:\wamp\bin\perl.exe -w
print "Hello World.\n";
答案 0 :(得分:1)
Windows不关注#!
行。您需要确保文件扩展名(在您的情况下为.cgi
或更常见的.pl
)与注册表中的perl可执行文件相关联。
运行perl程序/脚本有两种方法,一种是直接使用主程序/脚本的文件名作为参数执行perl:
C:\wamp\bin\perl.exe mydir\myprog.pl
不要永远在您的网络服务器的cgi目录中执行此操作。
执行程序的另一种方法是命名要运行的文件,并依赖于操作系统的内置方法来找到运行它的正确程序。
mydir\myprog.pl
在* nix OS上,分析文件的前两个字节以确定如何处理它,如果这两个字节相当于ASCII字符串#!
,那么该文件被视为文本, &安培;读取第一行的其余部分,期望它将包含文件解释器的路径。
在Windows操作系统上,文件扩展名用于在注册表中搜索与该文件类型关联的解释器的路径。