2012-01-18 110 views
3

我已經安裝了Apache。我在本地主機上使用PHP進行腳本編寫。需要知道如何運行perl腳本。 我已經安裝了sudo的性向安裝中的libapache2-MOD-perl2 我創建了一個目錄名的cgi-bin在我的/ var/WWW/cgi-bin目錄 有這個文件夾裏面我遵守了我的Perl腳本perl_1.pl 的權限目錄給出。 我還需要做什麼來運行腳本? 我只是輸入http://localhost/cgi-bin/ 而我得到錯誤403 您沒有權限訪問此服務器上的/ cgi-bin /。 請幫忙!如何在本地主機上運行perl腳本?

謝謝

+0

我檢查我的apache錯誤日誌,發現其採取了不同的文件路徑/usr/lib/cgi-bin/perl_1.pl(我下,CGIēUbuntu的默認位置腳本),然後我將文件位置從/var/www/cgi-bin/perl_1.pl更改爲此位置,腳本運行正常......但如何更改該目錄或如何將ExecCgi添加到我創建的目錄???? – Rahul 2012-01-19 04:42:06

回答

5

你無法讀取cgi-bin的內容。您必須直接參考其中的一個腳本,在這種情況下:http://localhost/cgi-bin/perl_1.pl

除此之外,請確保您的cgi-bin /目錄實際上在httpd.conf中被如此處理。

呵呵,萬一你偶然發現500:確保你的perl腳本打印一個有效的HTTP頭。這可以通過以下方式輕鬆實現:

use CGI qw(:standard); 
print header(); 

而且Pwex指出:確保腳本的可執行位已設置。

chmod 755 perl_1.pl 

...在大多數情況下

另外的工作,以供將來參考值得一提的mod_perl,因爲它是使CGI +的Perl +的基礎阿帕奇下來後的下一步。詳細討論這個問題將超出這個答案的範圍,但我想我會提及它,以便在掌握了基本知識以及看到cgi的侷限性之後,知道下一步該怎麼去。

+1

另外,請確保文件權限正常。應爲Web服務器用戶設置eXecute權限(例如'chmod u + x perl_1.pl')。 – pwes 2012-01-18 14:03:10

+0

感謝您的回覆。我試圖通過直接執行該文件。但後來它說404:在這臺服務器上找不到請求的URL /cgi-bin/perl_1.pl。如果您希望通過一些細節或步驟告訴我,我對配置沒有多少了解。謝謝 – Rahul 2012-01-18 14:46:45

0

如果你不綁定到apache或者可以在不同的端口上運行這些腳本,那麼你可以使用Plack/PSGI工具鏈,該解決方案可以運行舊的CGI腳本作爲PSGI應用程序。有幾種方法可以參見Running CGI scripts on Plack

+0

我是perl的初學者,只是寫我的測試腳本。雖然我可以從「padre」編輯器執行它,但無法在瀏覽器中獲得o/p。謝謝 – Rahul 2012-01-18 14:50:11

3

您的Apache的配置如何? 您是否確定要告訴Apache在cgi-bin目錄中執行CGI腳本?

喜歡的東西:

ScriptAlias /cgi-bin/ "/var/www/website/cgi-bin/" 
<Directory "/var/www/website/cgi-bin/"> 
       Options ExecCGI -MultiViews +SymLinksIfOwnerMatch 

       ... 
</Directory> 
相關問題