2016-09-21 100 views
1

最近我安裝了XAMPP(Apache)服務器,用於在Windows機器上運行CGI腳本。如你所知,XAMPP可以選擇安裝PERL,但我沒有選擇它,我想用Cygwin的PERL來執行它們。Cygwin Perl CGI與Xampp

問題是,當我試圖運行一個基本的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 

任何幫助表示讚賞

+0

您正在使用哪個版本的cygwin的PERL?您是否使用cygwin安裝程序安裝了PERL擴展?檢查你的$ _PATH環境變量,看看是否包含正確的PERL路徑 –

+0

我正在使用(v5.22.1)...我不認爲安裝任何擴展..如何檢查$ _Path環境變量..任何幫助.. – Randy

+0

啊我的不好.......它現在解決.....當粘貼或改變shebang ...它移動到第二線,並使它不工作....現在它的工作....無視它...感謝您的幫助 – Randy

回答

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)。

0

粘貼或改變剪貼時,它移動到第二行,並使其無法使用,但它現在正在工作。