2009-10-18 132 views
1

我一直在玩我的Mac一個網絡服務器,現在我試圖做一個簡單的HTML表單,並打印出輸入的Perl腳本。我將/ Library/WebServer/Documents鏈接到〜/ Sites /,所以我的index.html和display.cgi都在那裏。但是當我按下提交時,perl文件只顯示爲文本。我擁有的任何cgi文件都沒有執行,它只是顯示爲文本。我究竟做錯了什麼?謝謝。爲什麼我的Perl CGI腳本在瀏覽器中顯示爲純文本?

回答

3

除非您的服務器專門設置爲運行/Library/WebServer/Documents文件夾中的perl腳本,否則您必須改爲將它們放入/Library/WebServer/CGI-Executables。 (然後從URL中的/cgi-bin/路徑訪問它們,例如http://localhost/cgi-bin/display.cgi。)

一旦你這樣做了,確保你已經在Perl腳本上設置了權限,以便它是可執行的。爲此,請轉到終端中的包含目錄,然後鍵入chmod a+x display.cgi

此外,請檢查腳本的第一行(shebang行)是否具有正確的perl路徑。在我的Mac上,Perl位於/usr/bin/perl,但如果您想檢查自己,請運行命令which perl

+0

+1,這是100%的web服務器配置和0%perl。 – hobbs 2009-10-18 02:09:04

+0

+ 1,擊敗我的三件事情來檢查你的cgi腳本被提供靜態:目錄的ExecCGI選項,cgi和shebang行的+ x權限是有效的。 – Mark 2009-10-18 02:11:37

+0

我的shebang已經是/ usr/bin/perl。謝謝,這工作,但你也可以回答我的問題關於名稱/ ID? – mk12 2009-10-18 02:18:49

0

不要忘了加#號的「認領線」的前面,如下面的例子:

#!d:/perl/bin/perl 

#!/usr/local/bin/perl -w 

注:-w會顯示警告。

+0

爲什麼'#!d:/ perl/bin/perl'與Mac OS X問題有關? – 2009-10-18 02:38:45

+0

我的shebang很好,'#!/ usr/bin/perl -wT'。 – mk12 2009-10-18 02:47:18

+0

#!d:/ perl/bin/perl與Mac OS X問題無關,但對於Windows Perl用戶來說這是一個有用的問題。對困惑感到抱歉。 – meme 2009-10-19 20:30:43

0

爲了回答您的其他問題:

要從cgi-bin目錄以外使用CGI腳本,你可能不得不潛入配置文件。主要的是/private/etc/httpd/httpd.conf,您必須使用終端才能到達,因爲/private/目錄默認爲隱藏。

或者,您可以在要放置腳本的目錄中創建一個.htaccess文件。 This manual page應該可以幫助你計算出放在那裏的東西。請注意,Apache手冊中不包含任何Mac特定的信息,因爲它也用於其他操作系統。

相關問題