带有Xampp的Cygwin Perl CGI

时间:2016-09-21 00:38:57

标签: apache perl xampp cgi

最近我安装了XAMPP(Apache)服务器,用于在Windows机器上运行CGI脚本。如您所知,XAMPP可以选择安装PERL,但我没有选择它,我想使用Cygwin的PERL来执行它们。

问题是当我尝试运行基本的CGI脚本时,我收到以下错误

[Tue Sep 20 19:51:10.473825 2016] [win32:error] [pid 12420:tid 1848] [client ::1:57051] AH02102: C:/xampp/cgi-bin/perltest.cgi is not executable; ensure interpreted scripts have "#!" or "'!" first line`enter code here`

[Tue Sep 20 19:51:10.473825 2016] [cgi:error] [pid 12420:tid 1848] (9)Bad file descriptor: [client ::1:57051] AH01222: don't know how to spawn child process: C:/xampp/cgi-bin/perltest.cgi

意味着Cygwin Perl路径不是vaild。然而,我确实改变了路径,并让一个shebang仍然现在正在工作。这是我正在使用的那个:

#!C:\cygwin64\bin\perl.exe

感谢任何帮助

2 个答案:

答案 0 :(得分:0)

shbang概念不会在Windows上退出。众所周知,Apache在Windows上模仿了shbang的概念(通过阅读脚本的第一行),但仍然可能存在问题。

更好的是在Windows上使用Windows批处理文件(.bat文件)作为CGI脚本(您也可以使用.vbs)。

在Apache的配置中为特定类型的脚本执行SetHander(或AddHandler),然后使用HelloWorld.bat等批处理文件。

@echo off
echo "content-type: text/plain"
echo.
echo "Hello World"
dir

代替dir,您可以替换任何其他二进制文件(例如perl.exe)。

答案 1 :(得分:0)

在粘贴或更换shebang时,它移至第二行并使其无效,但它现在正在工作。