2012-01-18 244 views
1

我在Ubuntu服務器上安裝了標準Apache2。默認設置使用ScriptAlias來表示/cgi-bin//usr/lib/cgi-bin/。如果我將我的Python CGI腳本放在/usr/lib/cgi-bin/中,它將執行。從/ cgi-bin /文件夾執行Python CGI

我創建/var/www/cgi-bin/有相應的權限,刪除ScriptAlias線,改變了default文件Directory進入該網站,移動的CGI文件/var/www/cgi-bin/並重新啓動的Apache2,但我沒能拿到腳本運行。它在瀏覽器中顯示爲一個文本文件,而不是被執行。調用腳本的HTML文件是指/cgi-bin/SCRIPT,所以我保持不變。我在配置文件中嘗試了/cgi-bin/var/www/cgi-bin的變體,但沒有成功。我怎樣才能得到一個Python CGI文件從/var/www/cgi-bin運行

回答

4

如果刪除了ScriptAlias指令,你應該添加下列行到主配置的目錄或成.htaccess文件:

Options +ExecCGI 
AddHandler cgi-script py 
+0

我的CGI腳本以.cgi結尾,所以我推測這是...'cgi-script cgi'在我的情況下?我現在會測試它。 – SabreWolfy 2012-01-18 13:38:00

+0

我注意到,如果將這些行放在'default'文件的'Directory'部分下,這些行不起作用;當我將它們放入該文件的主體時,它們就工作了。我認爲最好是將它們放在'.htaccess'文件中,以便它們的效果僅對該文件夾是本地的? – SabreWolfy 2012-01-18 13:44:24

+0

@SabreWolfy,好吧,我通常會把它們放到我需要的'.htaccess'中)但是我在'VirtualHost'部分有其他'AddHandler'指令,所以它們都應該可以工作。 – newtover 2012-01-18 13:49:55

0

請確保:

  1. 文件你正在調用自己有足夠的權限
  2. 您正在調用的文件有一個在.htaccess文件中的擴展名(請參見newtover的答案)
  3. 指定如何在文件的第一行中運行腳本。如果您正在調用foo.pl,請確保#!/ usr/bin/perl位於第一行。