从/cgi-bin/文件夹执行Python CGI

2 投票
2 回答
3900 浏览
提问于 2025-04-17 10:31

我在一台Ubuntu服务器上安装了标准的Apache2。默认设置中,使用了ScriptAlias/cgi-bin/指向/usr/lib/cgi-bin/。如果我把我的Python CGI脚本放在/usr/lib/cgi-bin/里,它就能正常执行。

我创建了/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运行呢?

2 个回答

0

请确保:

  1. 你要调用的文件本身有足够的权限。
  2. 你要调用的文件的扩展名在 .htaccess 文件中被允许(可以参考 newtover 的回答)。
  3. 在文件的第一行指定你想要如何运行这个脚本。如果你要调用 foo.pl,确保第一行写的是 #!/usr/bin/perl。
4

如果你删除了 ScriptAlias 这个指令,那么你可能需要在主配置文件里或者 .htaccess 文件中添加以下几行代码:

Options +ExecCGI
AddHandler cgi-script py

撰写回答